我有一些记录。
ID Salary WillGroupBy Amount ---------------------------------------- 6320 100 1 15 6320 150 1 20 6694 200 0 25 6694 300 0 30 7620 400 1 45 7620 500 1 50
如何才能将“WillGroupBy = 1”记录分组?
(我将SUM工资和金额列) 我想得到这个结果:
ID Salary WillGroupBy Amount ---------------------------------------- 6320 250 1 35 6694 200 0 25 6694 300 0 30 7620 900 1 95你能帮帮我吗?(?
解决方案:
SELECT ID, SUM(Salary) Salary, WillGroupBy, SUM(Amount) Amount FROM YourTable where WILLGROUPBY = 0 union all SELECT ID, SUM(Salary) Salary, WillGroupBy, SUM(Amount) Amount FROM YourTable where WILLGROUPBY = 1 group by ID, WillGroupBy
我通过Erhan使用了这个解决方案。
我想知道它可能以另一种方式出现。
答案 0 :(得分:0)
使用MySQL,您可以:
SELECT ID, SUM(Salary) Salary, WillGroupBy, SUM(Amount) Amount, @row := @row + 1
FROM YourTable
JOIN (SELECT @row := 0) v
GROUP BY ID, IF(WillGroupBy = 1, -1, @row)