【发布时间】:2021-05-08 02:57:18
【问题描述】:
我是学习 SQL 的新手,如果我的问题不完全准确,我深表歉意。
我试图用这个查询回答的问题是“每个国家/地区最受欢迎的音乐类型是什么?”我不得不使用子查询并且它有效,但我发现对于表中的几个国家/地区,不止一种类型具有 MAX 值。我不知道如何编辑我的查询,以便所有具有最大值的类型都显示在结果中。这是我的代码,使用 DB Browser for SQLite:
SELECT BillingCountry AS Country , name AS Genre , MAX(genre_count) AS Purchases
FROM (
SELECT i.BillingCountry, g.name, COUNT(g.genreid) AS genre_count
FROM Invoice i
JOIN InvoiceLine il
ON il.InvoiceId = i.InvoiceId
JOIN TRACK t
ON il.trackid = t.TrackId
JOIN Genre g
ON t.genreid = g.GenreId
GROUP BY 1,2
) sub
GROUP BY 1
这是一个结果示例:
| Country | Genre |Purchase|
|---------|-------|--------|
|Agrentina| Punk | 9 |
|Australia| Rock | 22 |
但是在仅运行子查询来计算购买时,阿根廷有两个流派,购买次数为 9(该国家/地区的最大数量)。如何调整我的查询以包含这两个而不是只包含行中的第一个?
【问题讨论】:
-
select version();显示什么? -
太棒了。另一根棍子,没有棒棒糖。
-
查看我添加的标签。
-
@ysth 我正在使用 SQLite 版本 3.12.1、Qt 版本 5.12.8 SQLite 版本 3.33.0 的数据库浏览器
-
@ysth 是正确的。我意识到我错误地用 mysql 标记并改变了它。
标签: sqlite count max groupwise-maximum