过去几天我一直在堆栈如何执行查询。我想从类别首先改变其状态的记录下面的表中进行选择。
Id Category Month
1 Start Jan
2 Start Feb
3 Middle Mar
4 Middle Apr
5 End May
从该表中我只想要更改类别的记录。所以我希望SELECT中的表格如下:
Id Category Month
1 Start Jan
3 Middle Mar
5 End May
提前感谢您抽出宝贵时间回答我的问题。
答案 0 :(得分:3)
为每个类别提取最低ID并获取该记录的月份:
select
t1.id, t1.category, t2.month
from (
select category, min(id) as id
from yourtable
group by category
) t1
join t2 on t1.id = t2.id and t1.category = t2.category -- second may not be necessary
如果您的id
列是唯一的,则不需要使用category
的条件。
对于具有最小ID的每个类别,上面的代码都会从month
列获得值。
答案 1 :(得分:0)
如果我理解正确,可以使用GROUP BY
实现您的目标。
SELECT MIN(id) as ID, Category, MIN(Month) as Month
FROM MyTable
GROUP BY Category