gpt4 book ai didi

sql - 在SQL中查找一年中最常见的元素

转载 作者:行者123 更新时间:2023-12-03 19:11:35 27 4
gpt4 key购买 nike

我有一个具有三个属性的表,年份,品种和颜色。例如:

╔════╤═════════╤═══════╤══════╗
║ id │ breed │ color │ year ║
╠════╪═════════╪═══════╪══════╣
║ 01 │ pug │ black │ 2019 ║
╟────┼─────────┼───────┼──────╢
║ 02 │ pug │ black │ 2019 ║
╟────┼─────────┼───────┼──────╢
║ 03 │ poodle │ brown │ 2019 ║
╟────┼─────────┼───────┼──────╢
║ 04 │ pug │ white │ 2013 ║
╟────┼─────────┼───────┼──────╢
║ 05 │ poodle │ brown │ 2013 ║
╟────┼─────────┼───────┼──────╢
║ 06 │ poodle │ white │ 2010 ║
╟────┼─────────┼───────┼──────╢
║ 07 │ bulldog │ white │ 2010 ║
╟────┼─────────┼───────┼──────╢
║ 08 │ husky │ brown │ 2012 ║
╟────┼─────────┼───────┼──────╢
║ 09 │ pug │ black │ 2013 ║
╟────┼─────────┼───────┼──────╢
║ 10 │ husky │ brown │ 2014 ║
╚════╧═════════╧═══════╧══════╝


创建表

create table dogs (
id char(5),
breed char(10),
year int,
color char(10),
primary key (id)
);


对于狗的每一年,我都需要找到最常用的犬种和采用的最常用的狗色,如果有联系,请列出所有联系。我尝试了以下方法:

SELECT d.year, d.breed,COUNT(d.breed),d.color,COUNT(v.color)
FROM dogs d
GROUP BY d.year,d.breed,d.color;


从本质上讲,这每年都能使我获得不同的品种以及每种颜色有多少种。我将如何处理上述问题?我也在使用SQLite。

最佳答案

如果您的SQLite版本是RANK或更高版本,我们可以尝试使用3.25.0

WITH cte AS (
SELECT d.year, d.breed, d.color, COUNT(d.breed) AS cnt,
RANK() OVER (ORDER BY COUNT(d.breed) DESC) rnk
FROM dogs d
GROUP BY d.year, d.breed, d.color
)

SELECT year, breed, color, cnt
FROM cte
WHERE rnk = 1;


如果您的SQLite版本不支持窗口功能,并且您希望报表要求与此类似,请考虑升级。

关于sql - 在SQL中查找一年中最常见的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58315654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com