繁体   English   中英

SQL按列和列值分组?

[英]SQL Group by column and column value?

我有一个如下的招聘表:

------------------------------------------------------
| slot_id  |  hired_days |  qty  |  amt  |  return   |
-----------|-------------|-------|-------|-----------|
|    1     |     30      |   5   |  100  |     0     |
|    1     |     30      |  15   |  300  |     0     |
|    1     |     30      |  12   |  170  |     1     |
|    1     |     25      |  13   |  180  |     0     |
|    1     |     30      |   4   |  180  |     1     |
|    2     |     30      |  15   |  300  |     0     |
------------------------------------------------------

我希望将结果按slot_id和hired_days分组,但分组仅应针对0行的返回值进行。 结果表需要显示所有分组的行并返回1个数据。 有什么办法用SQL做到这一点?

-------------------------------------------------------
| slot_id  |  hired_days |   qty  |  amt  |  return   |
|----------|-------------|--------|-------|-----------|
|   1      |     30      |   20   |  400  |     0     |
|   1      |     25      |   13   |  180  |     0     |
|   1      |     30      |   12   |  170  |     1     |
|   1      |     30      |    4   |  180  |     1     |
|   2      |     30      |   15   |  300  |     0     |
-------------------------------------------------------

您可以使用UNION操作

SELECT slot_id,hired_days,sum(qty),sum(amt),return FROM hiring
WHERE return=0 GROUP BY slot_id,hired_days 
UNION ALL 
SELECT slot_id,hired_days,qty,amt,return FROM hiring WHERE return =1

试试这个查询...。

select slot_id, hired_days, sum(qty), sum(amt), return from hiring where return = 0 group by slot_id, hired_days, return union select slot_id, hired_days, qty, amt, return from hiring where return = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM