就像MIN()
和AVG()
我有時需要一個整數值的最常見的出現值(AKA模式)。這可以得到這樣的:自定義模式()函數可以像MySQL中的MIN()或AVG()
SELECT column, COUNT(*) AS x
FROM table
GROUP BY column
ORDER BY x DESC
LIMIT 1
而這相當一口。我真的很喜歡使用它,如:MODE()
SELECT AVG(`sTemperature`), MODE(`sSwitch`), MODE(`sDoor`)
FROM `stats`;
有沒有一種方法,使對於整數,上面的查詢工作? 對於布爾人,我圖ROUND(AVG())
是好的。
它可以在MySQL DB中定義函數,但它們可以像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
注:有其他類似Select most common value from a field in MySQL SO問題是問如何計算模式。這個問題是關於在函數中完全像AVG()一樣使用它的。