我的数据库的简化版本如下表所示。该数据库包含来自用户投票的民意调查的歌曲。有多个投票可用,有些歌曲可能属于多个投票。
简化示例:
+------+------------------------------------+
| POLL | SONG |
+------+------------------------------------+
| 1 | ABBA - I HAVE A DREAM |
| 1 | 10 CC - DREADLOCK HOLIDAY |
| 1 | ABBA - I HAVE A DREAM |
| 1 | ABBA - I HAVE A DREAM |
| 1 | ANDREA BERG - WENN DU MICH WILLST |
| 2 | QUEEN - WE WILL ROCK YOU |
| 2 | ABBA - I HAVE A DREAM |
| 2 | QUEEN - WE WILL ROCK YOU |
| 2 | HELEN SHAPIRO - QUEEN FOR TONIGHT |
| 3 | ABBA - I HAVE A DREAM |
+------+------------------------------------+
下面的 SQL 脚本创建了一个跨所有民意调查的视图,并计算了用户投票的所有歌曲(不考虑民意调查)。
CREATE OR REPLACE VIEW `voteResults` AS
SELECT
poll,
song,
COUNT(song) AS count
FROM votes
GROUP BY song
ORDER BY count DESC
但是我需要找到一种方法来计算属于每个投票的歌曲,所以视图应该有这样的输出:
+------+------------------------------------+-------+
| POLL | SONG | COUNT |
+------+------------------------------------+-------+
| 1 | ABBA - I HAVE A DREAM | 3 |
| 1 | 10 CC - DREADLOCK HOLIDAY | 1 |
| 1 | ANDREA BERG - WENN DU MICH WILLST | 1 |
| 2 | QUEEN - WE WILL ROCK YOU | 2 |
| 2 | ABBA - I HAVE A DREAM | 1 |
| 2 | HELEN SHAPIRO - QUEEN FOR TONIGHT | 1 |
| 3 | ABBA - I HAVE A DREAM | 1 |
+------+------------------------------------+-------+
如何才能最好地实现这一目标?