获得"平均价值"对于数据库表中的列

时间:2014-11-18 22:17:51

标签: mysql sql

我有一个数据库行条目,其中包含一个包含字符串值的公共列," L" " LV" " LRW"和" AD"。假设存在大量这些字段,具有这种性质的多个值。在SQL查询中是否有一种方法可以返回此列的最大值(实际上是平均值),而不是返回所有列条目,还是应该在开发链中将其更高地委托给它?

编辑:根据请求,这里是表格实际外观的示例设置:

+------------+---------+
|    Ent1    |  value  |
+------------+---------+
| 1          | L       |
| 2          | L       |
| 3          | LV      |
| 4          | AD      |
| 5          | AD      |
| 6          | L       |
| 7          | LRW     |
| 8          | L       |
+------------+---------+

2 个答案:

答案 0 :(得分:0)

如果要查找最多出现的值,可以使用COUNT()聚合函数来获取出现次数,并将结果集限制为一行:

SELECT columnName, COUNT(*) AS numAppearances
FROM myTable
GROUP BY columnName
ORDER BY numAppearances DESC
LIMIT 1;

通过降序排序,您可以有效地将大多数外观的值放在第一位,并且您可以将其限制为1以仅获得该值。

答案 1 :(得分:0)

SELECT myColumn, COUNT(*) AS amount 
FROM myTable 
GROUP BY myColumn 
ORDER BY amount DESC 
LIMIT 1