首页 > 解决方案 > 使用 WHERE 但不使用 GROUP BY 过滤

问题描述

我对 SQL 很陌生,所以这可能很明显,但我被卡住了。我有一张桌子,我根据一些条件计算歌曲播放量。我的问题是我想要过滤的列之一(歌曲长度)但我不想在输出中按它分组,因为它会给出错误的输出。

这是我的伪代码:

SELECT COUNT(songid) AS Plays, songlength, artist
FROM MyTable
WHERE artist = Justin AND songlength > 10000
GROUP BY artist
HAVING Plays > 0
ORDER BY Plays DESC

我将如何做到最好?

标签: sqlgoogle-bigquery

解决方案


试试这样写。当您在选择列表中放置一些非聚合字段时,必须将相同的列放在分组依据中。您正在寻找的解决方案,下面的代码可以提供帮助。试着让我知道

SELECT COUNT(songid) AS Plays, artist
FROM MyTable
WHERE artist = 'Justin' AND songlength > 10000
GROUP BY artist
HAVING Plays > 0
ORDER BY Plays DESC

推荐阅读