SQL:通过计算属于特定类别的分组项目来创建视图

问题描述 投票:0回答:0

我的数据库的简化版本如下表所示。该数据库包含来自用户投票的民意调查的歌曲。有多个投票可用,有些歌曲可能属于多个投票。

简化示例:

+------+------------------------------------+
| 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   |
+------+------------------------------------+-------+

如何才能最好地实现这一目标?

sql view
© www.soinside.com 2019 - 2024. All rights reserved.