SQL - 计算多个组

SQL - Counting over several groups

我有一个 ID 重复的交易列表,并且我有购买的商品数量。我需要计算一次购买特定数量商品的次数。

Row ItmNBR TQTY
1 123 5
2 123 5
3 123 5
3 456 25
4 456 19

我需要生成这样的输出...

ItmNBR QTY Occurance
123 5 3
123 19 1
123 25 1

我可以得到结果的前两列,但是当我尝试对一个分区进行计数时,我最终得到了重复的数字,因为我只查找了 9 个项目,我只计算了其中的行数Cnt是一样的。

    TOT_IVO_ITM_QTY
     Count(*) OVER (PARTITION BY QTY) AS CNT
FROM dataset 
    WHERE YEAR(bus_dt) = 2021
    AND ITM_NBR IN (12639,12940,12949,12955,13485,13666,43950,631343,1103731)
    AND QTY BETWEEN 5 AND 25
    ORDER BY ITM_NBR
    ,QTY
    GROUP BY ITM_NBR, TOT_IVO_ITM_QTY``` 

我想你只是想要 group by:

select ItmNBR, QTY, count(*)
from t
group by ItmNBR, QTY
order by count(*) desc;

这假设您想要按项目和数量进行计数,这似乎是问题的要点。