SQL枢轴或自联接为此?

时间:2016-10-21 22:09:30

标签: sql join pivot

我有一个表,事件,有2列 物) - entityId:string - eventId:int

存在一行(“foo”,42)意味着id为42的事件发生在实体“foo”上。

我想要做的是从表中找出哪些事件ID没有注册哪些实体。例如。数据:

“foo”,1

“foo”,2

“foo”,3

“bar”,1

“bar”,2

“baz”,3

应该产生这样的答案:

.... | 1 | 2 | 3

FOO | y | y | y

巴| y | y | n

巴兹| n | n | y

我环顾四周,看到有关枢轴和连接的参考文献。关于最佳行动方案的任何建议? 谢谢!

1 个答案:

答案 0 :(得分:1)

好吧我认为这就是我需要的:

 SELECT
        entityId,
        COUNTIF(eventId == 1) AS event1_count,
        COUNTIF(event_id == 2) AS event2_count,
        COUNTIF(event_id == 3) AS event3_count,
        COUNTIF(event_id == 4) AS event4_count
    FROM data
    GROUP BY entityId;