SQL选择仅限于最高值

时间:2014-01-14 11:48:33

标签: mysql sql select distinct

让我们说我们有这样的表:

table

我只选择具有最高时间的唯一计划,并且还能够选择其他列。在这里说明一个查询(显然不会起作用):

SELECT DISTINCT(plan), time, id
FROM table
ORDER BY time desc

我怎么能得到这样的表:

plan|time|id
----+----+--------
1   |0   |9
2   |90  |10
3   |180 |11
4   |360 |12
5   |720 |13
6   |1080|15
7   |0   |16
8   |720 |23

3 个答案:

答案 0 :(得分:4)

这听起来像一个简单的聚合查询:

SELECT   plan, MAX(time)
FROM     mytable
GROUP BY plan

答案 1 :(得分:2)

如果每个计划的最高时间是唯一的,并且您需要选择更多列,那么自联接应该

select mytable.* from
mytable
inner join
  (
  select plan, max(time) as maxtime
  from mytable
  group by plan
  ) as maxtimes
  on mytable.plan = maxtimes.plan and mytable.time = maxtimes.maxtime

答案 2 :(得分:-4)

SELECT计划,最大(时间),ID 按计划从演示组

check fiddle