sql - 使用 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
我将如何做到最好?
解决方案
试试这样写。当您在选择列表中放置一些非聚合字段时,必须将相同的列放在分组依据中。您正在寻找的解决方案,下面的代码可以提供帮助。试着让我知道
SELECT COUNT(songid) AS Plays, artist
FROM MyTable
WHERE artist = 'Justin' AND songlength > 10000
GROUP BY artist
HAVING Plays > 0
ORDER BY Plays DESC
推荐阅读
- java - 随机数只初始化一次
- sql - SQLite如何查询这个?
- sql - SQL-如何获取每个帐户的最后一条记录
- php - MySQL 使用相同的查询在 PHP 和 PHPMyadmin 上返回不同的结果
- django-admin - 在该模型的添加页面上过滤模型(Django)
- java - 如何使用 Java 打开、保存和关闭 Excell 启用宏的工作表文件?
- c# - 循环进入 ListView 元素
- c# - 在本地部署 Service Fabric 项目:“FABRIC_E_IMAGEBUILDER_UNEXPECTED_ERROR”
- python - 在启动时启动无头音板脚本的问题
- postgresql - PostgreSQL:只读表