gpt4 book ai didi

sql - SQL查询,用于查找按值分组的最频繁的值

转载 作者:行者123 更新时间:2023-12-04 10:20:12 25 4
gpt4 key购买 nike

我正在使用SQLite浏览器,正在尝试查找一个查询,该查询可以从以下位置的另一列中找到按值分组的最大值:

表称为主表

|  |Place  |Value|
| 1| London| 101|
| 2| London| 20|
| 3| London| 101|
| 4| London| 20|
| 5| London| 20|
| 6| London| 20|
| 7| London| 20|
| 8| London| 20|
| 9| France| 30|
| 10| France| 30|
| 11| France| 30|
| 12| France| 30|


我要寻找的结果是按位置查找最频繁的值分组:

|  |Place  |Most Frequent Value|
| 1| London| 20|
| 2| France| 30|


甚至更好

|  |Place  |Most Frequent Value|Largest Percentage|2nd Largest Percentage|
| 1| London| 20| 0.75| 0.25|
| 2| France| 30| 1| 0.75|

最佳答案

您可以按位置分组,然后按频率分组,然后按频率排序。

select place,value,count(value) as freq from cars group by place,value order by place, freq;


这不会完全给出您想要的答案,但是像它附近

London | 101 | 2
France | 30 | 4
London | 20 | 6


现在,从此中间表中选择位置和值,然后按位置分组,以便每个位置仅显示一行。

select place,value from
(select place,value,count(value) as freq from cars group by place,value order by place, freq)
group by place;


这将产生如下结果:

France | 30
London | 20


这适用于sqlite。但是对于某些其他程序,它可能无法按预期方式工作,并以最少的频率返回位置和值。在这些情况下,您可以放 order by place, freq desc来解决您的问题。

关于sql - SQL查询,用于查找按值分组的最频繁的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39432789/

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