sup123
Goto Top

Datenbankabfrage - Werte vergleichen und zaehlen.

Datenbankabfrage - Werte vergleichen und zählen.

Wie kann man das machen?

40e222d3ceff932fad2ed0ec90b7d078-sql

Beispiel-Aufgabe 1.

Die Telefonnumer von User 1 und 3 für April Monat vergleichen und zählen.

Ergebnis: 1
Denn 2 gleiche Telefonnummer gefunden worden.

Beispiel-Aufgabe 2.

Die Telefonnumer von User 1 und 2 für April Monat vergleichen und zählen.

Ergebnis: 0
Denn keine gleiche Telefonnummer gefunden worden.

Danke voraus.

Content-ID: 88740

Url: https://administrator.de/contentid/88740

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

pitti08
pitti08 30.05.2008 um 22:38:38 Uhr
Goto Top
Mit der Tabelle? Gar nicht.
User ist ein in MySQL reserviertes Wort. Mit der Tabelle wird es Probleme bei der Abfrage geben.
Welches Ergebnis soll denn bei drei gleichen Telefonnummern ausgegeben werden?
Arano
Arano 31.05.2008 um 15:20:38 Uhr
Goto Top
Moin

User ist ein in MySQL reserviertes Wort. Mit der Tabelle wird es Probleme bei der Abfrage geben.
Das ist nicht korrekt !
Richtig ist, das es zu Problemen kommen KANN, dies aber auch nur dann, wenn die von MySQL reservierten Wörter als Spaltennamen verwendet werden und diese bei einer Abfrage nicht in Backticks (`) stehen.
So würden sich auch Spaltennamen wie "alter" oder "order" verwenden lassen.
  SELECT `user`,`alter`,`order`
    FROM `tabelle`
ORDER BY `oder` DESC


Zum Thema:
Ich verstehe leider nicht was du als Ergebnis haben möchtest !?


Schönen Samstag noch
Arano
sup123
sup123 03.06.2008 um 19:03:25 Uhr
Goto Top
Welches Ergebnis soll denn bei drei gleichen Telefonnummern ausgegeben werden?

Antwort: 3. Weil insgesamt drei gleche Telefonnummern sind.
sup123
sup123 03.06.2008 um 19:13:46 Uhr
Goto Top
Hallo Moin,

Als Ergebnis möchte ich folgenes haben:

Unter Tabelle kommt ein Text rein. So etwa:
User 1 und 3 haben 3 Duplikaten (Telefonnummern).
User 1 und 4 haben 10 Duplikaten.
User 1 und 5 haben 6 Duplikaten.


Schönen Abend noch.
sup123
sup123 05.06.2008 um 12:33:33 Uhr
Goto Top
Die Spalte User bzw IDUser hat SQL-Typ: bigint(11) also das ist kein Wort sonder Zahl.

Wenn ich so mache, dann werden nur von IDUser 1: Datum und Telefon aufgelistet und keine duplikaten gezählt.

SELECT `IDUser`,`Datum`,`Telefon`
FROM `Tabelle`
ORDER BY `Telefon` DESC
Arano
Arano 05.06.2008 um 15:00:59 Uhr
Goto Top
Sorry, aber ich glaube das übersteigt meine Fähigkeiten !

wie gefällt dir denn noch die Ausgabe von
  SELECT `Telefon`, COUNT(`IDUser`) AS `user_gasmat`
    FROM `Tabelle`
GROUP BY `Telefon`
Sollte auf obige Tabelle dieses Ergebnis liefern:
Telefon user_gesamt
456756778 3
556796221 1
Arano
Arano 05.06.2008 um 19:48:49 Uhr
Goto Top
Sorry, aber ich glaube das übersteigt meine Fähigkeiten !
Oder vielleicht auch nicht ! face-smile

Ich tue ja dann manchmal so als wäre es mein Problem und probiere weiter herum.
Wenn ich mich jetzt nicht irre, habe ich es doch noch hin bekommen.
MySQL-Tabelle
u_id datetime tele
1 2008-04-21 16:15:24 456756778
2 2008-04-21 16:11:00 556796221
3 2008-04-28 16:47:00 456756778
4 2008-05-23 09:46:00 456756778
MySQL-Query
  SELECT DATE_FORMAT(`datetime`,'%Y-%m') AS `year_month`,  
         `tele`,
         COUNT(`u_id`)                   AS `user_gesamt`
    FROM `sup123`
GROUP BY `tele`,`year_month`
ORDER BY `datetime`;
MySQL-Result
year_month tele user_gesamt
2008-04 556796221 1
2008-04 456756778 2
2008-05 456756778 1

Hoffe das stimmt nun so.

Gruß Tobias
Biber
Biber 13.06.2008 um 16:48:01 Uhr
Goto Top
Moin sup123,

ich habe Deine Frage mal von "PHP" nach "Datenbanken" verschoben.

Ich finde, Arano hat soviel Zeit, Sorgfalt und Mühe in seine Lösungsvorschläge gesteckt, dass es durchaus eine Antwort wert sein sollte.

Bitte gib mal Feedback, ob es geholfen hat oder Du selbst eine andere Lösung gefunden hast oder wie der Status jetzt ist.

Danke
Biber