2016-08-16 6 views
0

Es gibt eine Tabelle, die ich verwende, die Rechnungsdetails auflistet. Nehmen wir zum Beispiel an, ein Kunde checkt mit 2 Artikeln aus, es gibt 2 Zeilen für jeden Artikel.SQL-Gruppierung mit mehreren Zeilen

Gerade jetzt meine SQL-Abfrage sieht wie folgt aus:

Select date 
,order_id 
,count(distinct(item_name)) 
from Table_1 
group by 1,2 

Anstatt es durch order_id Gruppierung. Gibt es trotzdem eine Möglichkeit, diese Abfrage zu ändern, um die Anzahl der Aufträge zu finden, die an einem bestimmten Datum eine X-Menge an Artikeln haben. Also am 01.01.1990 haben 5 Bestellungen 3 Artikel, 6 Bestellungen haben 2 Artikel, etc.

Danke für die Hilfe!

+1

Blick in 'having' wenn die Antwort unten nicht ist, was man benötigt. – shawnt00

Antwort

0

Wenn ich Ihre Frage richtig zu verstehen, könnten Sie eine subquery Gruppierung durch die Elementanzahl verwenden:

select t.date, t.itemCount, t.count(order_id) 
from (
    Select date 
     ,order_id 
     ,count(distinct(item_name)) AS itemCount 
    from Table_1 
    group by 1,2 
) AS t 
group by date, itemCount