有问题的查询为什么这个查询的行为不像我预期的那样?
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
)