0
在我的查詢中,我需要選擇四個值 - 某些日期的平均值,某個日期的平均值,總計數和計數。我的查詢現在只用於平均值和數量。是需要有兩個查詢還是隻能使用一個?MySQL - >按條件選擇平均值和平均值
SELECT AVG(value) as average,
COUNT(*) as noRates
FROM `ratings` WHERE mid = 31
什麼,我希望是像
SELECT AVG(value) as average,
COUNT(*) as noRates,
AVG(value WHERE datecolumn = '2014-10-17') as averageToday,
COUNT(* WHERE datecolumn = '2014-10-17') as noRatesToday
FROM `ratings`
WHERE mid = 31
感謝您的回覆,但這不起作用。我使用隨機值創建了30年中,只有今天在datecolumn中,但averageToday和noRatesToday返回零。值必須是相同的像平均和noRates哪些工作正常。 – SilentCry 2014-10-17 14:24:06
'AVG(CASE WHEN datecolumn ='2014-10-17'THEN value ELSE 0 END)'將針對非2014-10-17的任何行計算* all *行的平均值,但value = 0的平均值。嘗試'AVG(CASE WHEN datecolumn ='2014-10-17'THEN END END)',而不會在2014-10-17之外忽略行。 – 2014-10-17 14:31:14
@SilentCry - 同樣,基於你的評論我想知道:你的'datecolumn'列的數據類型是什麼? Khalid的答案可以理解爲假設你有一個'DATE'類型,但是如果你得到的是全零(而不是一個太低的值),那麼可能是DATETIME或TIMESTAMP類型? – 2014-10-17 14:33:58