MySQL中是否有统计函数来查找列中最受欢迎的值?

时间:2011-08-03 09:17:45

标签: mysql select statistics

您有一种统计方法可以找到表格中列中最常用的值。

对于此表:

表格“资源” - M:M

的链接表
+------------+---------------------+-----------+
| resource_pk| user_fk             | supply_fk |
+------------+---------------------+-----------+
| 1          | 124124              |     1     |
| 2          | 265235              |     2     |
| 3          | 253255              |     1     |
| 4          | 151255              |     1     |
| 5          | 154233              |     3     |
+------------+---------------------+-----------+

所以在这个例子中,最受欢迎的supply_fk是“1”。

我想找到该表中“supply_fk”列的最受欢迎的值。

我试过了:

Select *
From resource
Group By *
Order By supply_fk Desc
LEFT JOIN
supply
ON
supply.supply_pk = resource.supply_fk

然而,所有这一切都是给我带有最高数值的“supply_fk”,即“3”然后指向另一张桌子给我“医疗剪刀”。

当“1”应该是“手术刀”时

我猜这有一个MySQL统计函数吗?我尝试使用谷歌搜索,但我得到的只有Min,Max和Middle

由于

6 个答案:

答案 0 :(得分:3)

您可以分组,按计数排序并获得第一条记录:

select r.supply_fk, s.name, count(*)
from resource r
inner join supply s on s.supply_pk = r.supply_fk
group by r.supply_fk, s.name
order by count(*) desc
limit 1

答案 1 :(得分:0)

试试这个:

SELECT supply_fk, MAX(c) AS m
FROM (SELECT supply_fk, COUNT(*) AS c
     FROM resource
     GROUP BY supply_fk)
GROUP BY supply_fk

修改:忘记了您无法为字段使用保留名称。现在修好了。

答案 2 :(得分:0)

您可以在mysql中执行COUNT。见here。尝试做一些像数量最多的选择。

答案 3 :(得分:0)

尝试

SELECT TOP(1)supply_fk,COUNT(supply_fk)AS supply_fk_count FROM supply GROUP BY supply_fk ORDER BY supply_fk_count desc

答案 4 :(得分:0)

此查询为您提供“资源表中”category_fk列最受欢迎的值“

SELECT supply_fk, COUNT(*) as c FROM resources
   GROUP BY supply_fk ORDER BY c DESC LIMIT 1

答案 5 :(得分:0)

选择fk作为键,count(fk)AS数量 来自mytable GROUP BY键 按数量DESC订购 限制1;

有关此内容的更多信息:http://forums.devarticles.com/mysql-development-50/mysql-mean-median-mode-statistics-4385.html