我只在为具有相同商品ID的行选择数量时遇到问题。这是我的表
ID |quanti| item | pack |
87 | "600"| 4924592 | 5042012
115| "300"| 4924710 | 5042034
116| "300"| 4924711 | 5042034
120| "200"| 4924710 | 5042036
121| "300"| 4924711 | 5042036
我的输出应该是什么样的
300 | 4924711
300 | 4924711
所以我可以对数量求和并在子查询中使用它。
答案 0 :(得分:1)
您可以使用窗口函数来获取此类重复项:
select t.*
from (select t.*, count(*) over (partition by quantity, item) as cnt
from t
) t
where cnt > 1;
但简单的聚合是不是足够了?您只能获得一行而不是两行:
select quantity, item, count(*) as cnt
from t
group by quantity item
having count(*) > 1;
答案 1 :(得分:0)
看起来你想要这个:
SELECT SUM(quantity)
,item
FROM MyTable
GROUP BY item
如果quantity
不是数字,则可能需要CAST
。
答案 2 :(得分:0)
取决于您使用的DBMS,但在概念上如下:
SELECT quantity, item, sum(pack), count(1) AS cnt
FROM table
GROUP BY 1, 2
HAVING count(1) > 1;
答案 3 :(得分:0)
按table_name从table_name group中选择*;