有問題的查詢爲什麼這個查詢的行爲不像我預期的那樣?
SELECT MAX(Date) as max, MIN(Date) as min FROM
table
WHERE Id = 'id'
ORDER BY Date DESC
LIMIT 100
而我希望它做的是返回的最大值和最近的100個記錄最小日期。它所做的是顯示所有記錄中的最小值和最大值。
有問題的查詢爲什麼這個查詢的行爲不像我預期的那樣?
SELECT MAX(Date) as max, MIN(Date) as min FROM
table
WHERE Id = 'id'
ORDER BY Date DESC
LIMIT 100
而我希望它做的是返回的最大值和最近的100個記錄最小日期。它所做的是顯示所有記錄中的最小值和最大值。
您必須首先選擇你有興趣和然後選擇那些max()
和min()
記錄。
SELECT max(Date) AS max,
min(Date) AS min
FROM (SELECT *
FROM t
WHERE Id = 'id'
ORDER BY Date DESC
LIMIT 100) x;
select min(Date) as min, max(Date) as max from
(
SELECT Date FROM your_table
WHERE Id = 'id'
ORDER BY Date DESC
LIMIT 100
) x
不要忘了逃跑用反引號列。
SELECT max(`date`) AS maxDate,
min(`date`) AS minDate
FROM (
SELECT `date`
FROM myTable
WHERE Id = 'id'
ORDER BY `date` DESC
LIMIT 100
)