假设我有两列数据:名称和冰淇淋购买量。
Joe | Chocolate
Mary | Vanilla
Beth | Rocky Road
Fred | Vanilla
Mary | Rocky Road
Joe | Vanilla
Joe | Chocolate
etc...
我想做的是获得计数,按两列分组。我知道如何做到这一点,这样它将输出到三列中:名称、风味和计数。然而,我想做的是输出它,将名称作为行,将风格作为列,如下所示:
+ Vanilla | Chocolate | Rocky Road
Joe | 1 | 2 | 0
Mary | 1 | 0 | 1
Beth | 0 | 0 | 1
Fred | 1 | 0 | 0
有没有一种方法只使用SQL查询就可以做到这一点?(数据库在SQLite中,如果这有什么不同的话。(
使用条件聚合:
SELECT name,
SUM(ice = 'Vanilla') Vanilla,
SUM(ice = 'Chocolate') Chocolate,
SUM(ice = 'Rocky Road') "Rocky Road"
FROM tablename
GROUP BY name;
请参阅演示