相关疑难解决方法(0)

mySQL查询找到最重复的值

我有一个包含多行的表,对于每一行我都需要知道最常见的值.

例:

row_1有

car
boat
car
car
truck
truck
plane
car
car
Run Code Online (Sandbox Code Playgroud)

作为其价值观.

我需要知道什么是最常见的价值(在这种情况下是汽车).我有几个想法,但由于我必须为30行做这个,我想要一个简单而不是CPU密集的查询.

mysql

15
推荐指数
1
解决办法
1万
查看次数

自定义 MODE() 函数可像 MySQL 中的 MIN() 或 AVG() 一样使用

就像MIN()AVG()有时需要整数值最常见的出现值(也称为众数)。这可以这样获得:

SELECT column, COUNT(*) AS x 
FROM table 
GROUP BY column 
ORDER BY x DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

这实在是太拗口了。我真的很想像这样使用它:MODE()

SELECT AVG(`sTemperature`), MODE(`sSwitch`), MODE(`sDoor`)
FROM `stats`;
Run Code Online (Sandbox Code Playgroud)

有没有办法使上述查询适用于整数?对于布尔值,我认为ROUND(AVG())没问题。

可以在 MySQL 数据库中定义函数,但它们可以像 MIN() 或 AVG() 一样处理数据集吗?

因为我在以下内容中经常使用它:

INSERT INTO `statsaggregates` (
  `saMeasurements`, `saTemperature`, `saSwitch`, `saDoor`
) SELECT 
  COUNT(*)            as 'saMeasurements',
  AVG(`sTemperature`) as 'saTemperatureAvg',
  MIN(`sTemperature`) as 'saTemperatureMin',
  MAX(`sTemperature`) as 'saTemperatureMax',
  MODE(`sSwitch`)     as 'saSwitch',
  MODE(`sDoor`)       as 'saDoor'
FROM `stats`
WHERE 1
Run Code Online (Sandbox Code Playgroud)

注意:还有其他 SO 问题,例如Select most common value from …

mysql

5
推荐指数
1
解决办法
2493
查看次数

标签 统计

mysql ×2