2017-10-26 3 views
0

Ich möchte doppelte Zeilen mit derselben Person gruppieren und zählen, wie viele Zeilen vorhanden sind. Ich verwende diesen SQL-Befehl, aber es zeigt nicht alle Zeilen, ich kann ein paar neue Zeilen sehen, aber in diesem Befehl nicht Der SQL-Befehl zeige ich benutze ist:Doppelte Gruppen in den letzten 24 Stunden gruppieren

SELECT seller, count(id) AS value_sum , type, date, sold, type2 
FROM accounts 
GROUP BY type, seller 
HAVING (FROM_UNIXTIME(date) >= now() - INTERVAL 1 DAY) AND sold='0' 
ORDER BY rand() 

Wo liegt das Problem, dass es einige Reihen nicht zeigt?

+1

Bearbeiten Sie Ihre Frage und liefern Sie Beispieldaten und gewünschte Ergebnisse. –

+0

Ja, Beispieldaten und erwartete Ergebnisse bitte. Wie nennt man "doppelte Zeilen"? Was meinst du mit "Ich möchte Zeilen gruppieren"? –

Antwort

0

Meine erste Reaktion ist, dass die having Klausel sollte eine where Klausel sein. Dann sollten Sie nur nicht aggregierte Spalten in die SELECT einfügen, die sich in der GROUP BY befinden.

Sie können die sellers mit duplizierten Zeilen sehen wie:

SELECT seller, count(id) AS cnt 
FROM accounts 
WHERE (FROM_UNIXTIME(date) >= now() - INTERVAL 1 DAY) AND sold = 0 
GROUP BY seller 
ORDER BY rand(); 

Dies scheint das Problem zu lösen, die Sie beschreiben.

Verwandte Themen