SQL-计算“相似”行的数量,并将结果放在另一个表中

时间:2017-06-27 18:24:35

标签: mysql sql database

我有一张名为'orders'的表格,用于记录用餐的订单ID,订购餐点的人员ID和用餐(可以是1,2或3)

     orders
oid | pid | meal
________________
 1  | 1   | 2
 2  | 1   | 3
 3  | 3   | 1
 4  | 5   | 2
 5  | 5   | 2
 6  | 5   | 1

我想生成一个结果,让我可以查看每个pid每餐的订单数量:

 pid | meal1 | meal2 | meal3
____________________________
 1   |   0   |   1   |  1
 3   |   1   |   0   |  0
 5   |   0   |   2   |  1

我不是SQL专家,但我想我会首先按照pid分组列表,然后按用餐分组。但是我该怎么做呢?我真的输了。

1 个答案:

答案 0 :(得分:5)

基本上你需要首先使用大小写为不同的饭菜创建多个列,然后你可以通过pid进行分组并总结出来

Select pid, sum(case when meal =1 then 1 else 0 end) as meal1,
            sum(case when meal =2 then 1 else 0 end) as meal2,
            sum(case when meal =3 then 1 else 0 end) as meal3
from Table
group by pid