我有一个节日,已经发生了25年的表。THHE表是:
Member Table
| MemberID | Last_Name | First_Name |
| 1 | Smith | John |
| 2 | Johnson | Bob |
| 3 | Newman | Sam |
| 4 | White | John |
Transactions Table
| TransactionID | MemberID | FestYear |
| 1 | 1 | 2010 |
| 2 | 1 | 2011 |
| 3 | 1 | 2012 |
| 4 | 2 | 2010 |
| 5 | 3 | 2011 |
| 6 | 3 | 2012 |
| 7 | 4 | 2012 |
我想要一个输出,计数(1)有多少参与者是他们的第一个节日(他们以前从未去过这个节日)。(2)有多少参与者是他们的最后一个节日(他们再也没有来过)。
| FestYear | MemberFirstFestival | MemberLastFestival |
| 2010 | 2 | 1 |
| 2011 | 1 | 0 |
| 2012 | 1 | 3 |
我不太擅长这样的大型SQL语句,所以没有任何进展。我知道我可以写几个循环SQL语句,但这似乎真的很低效。
1条答案
按热度按时间aij0ehis1#
我们可以使用窗口函数和条件聚合来实现:
fiddle