您有一种统计方法可以找到表格中列中最常用的值。
对于此表:
表格“资源” - 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
由于
答案 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