Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL选择最大计数_Sql_Select_Count_Max - Fatal编程技术网

SQL选择最大计数

SQL选择最大计数,sql,select,count,max,Sql,Select,Count,Max,表中有三列:id、streetname和count。对于某些ID,分配的街道名称不止一个。Count告诉每个街道分配给id的频率。如何仅获取id和计数最高的streetname 示例表: id streetname count 1 street1 80 1 street2 60 1 street3 5 2 street4 10 2 street5 6 结果应该

表中有三列:id、streetname和count。对于某些ID,分配的街道名称不止一个。Count告诉每个街道分配给id的频率。如何仅获取id和计数最高的streetname

示例表:

id     streetname     count
1      street1        80
1      street2        60
1      street3        5
2      street4        10
2      street5        6
结果应该是这样的:

id     streetname
1      street1
2      street4

提前谢谢

我不认为没有唯一的列名“id”是正确的方法,但您的问题应该通过以下查询得到解决:

SELECT id, streetname FROM table ORDER BY count DESC

您没有指定正在使用的数据库,但应该能够使用以下数据库:

select t1.id, t1.streetname, t1.count
from yourtable t1
inner join
(
  select id, max(count) max_count
  from yourtable
  group by id
) t2
  on t1.id = t2.id
  and t1.count = t2.max_count
看。注意,您必须使用MySQL的backticks或数据库用于转义保留字的任何字符转义
count
列名。我的建议是避免在列名和表名中使用保留字

试试这个

SELECT T1.id, T1.streetname FROM TableName T1
INNER JOIN 
(
SELECT id, MAX(count) maxcnt FROM TableName
GROUP BY id
) T2 
ON T1.id= T2.id AND T1.count = T2.maxcnt

从表ORDER中按COUNT DESC选择ID、STREETNAME,然后只取一行欢迎使用堆栈溢出!请通过添加适当的标记(Oracle、SQL Server、MySQL等)来指定目标RDBMS。可能有一些答案利用了并非普遍支持的语言或产品功能。此外,通过使用特定的RDBMS标记,您的问题可能会得到更适合回答它的人的注意。您所说的计数是什么意思?行数?
计数
字段的总和?
count
字段本身?谢谢您的评论!我不熟悉SQL,但没有其他方法可以解决此类问题。。。我刚刚将表从ESRI ArcGIS导出到Microsoft Access。他没有指定要选择多少记录,不是吗?我这样回答只是为了选择按计数排序的id和streetname。如果我误解了这个问题,我道歉。谢谢,这正是我所需要的!但是现在还有另一个问题:所有具有相同最大值的ID都不应该显示,因为它们不是唯一的…@user272421我不知道你的意思,但是如果你有多个具有相同街道名称和计数的ID,那么你应该能够使用distinct。你能用更多的示例数据编辑sql fiddle()来进一步解释这个问题吗?我根据自己的需要更改了sql fiddle()。ID和计数相同,但街道不同。应在结果中消除ID 3,以便只有唯一的ID 1和2。关于ID 3,我不能做任何陈述,因为结果的权重是相同的。顺便说一句,SQLFiddle是一个不错的工具@用户272421您使用的是什么数据库?因此,如果您有两个具有相同计数的ID,您不希望它返回?是的,这似乎有效…=)谢谢!我目前正在与微软Access合作。