按两列分组的计数输出到列和行中



假设我有两列数据:名称和冰淇淋购买量。

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;

请参阅演示

相关内容

  • 没有找到相关文章

最新更新