我有一张这样的table
ID | name | status | Year
_______________________________________
1 |f1 car | enter |2017
2 |f2 car | checking |2019
3 |f3 car | enter |2017
4 |f2 car | enter |2018
5 |f3 car | checking |2019
6 |f2 car | exit |2020
7 |f3 car | exit |2020
8 |f1 car | checking |2018
9 |f4 car | enter |2019
10 |f5 car |enter |2019
11 |f4 car |checking |2020
有三件事 name , status and year
我想让它得到最新的地位明智的计数根据年份和汽车计数 'enter'
每辆车的第一个状态是指如果表中有一辆车,第一个状态将是 enter
然后检查然后
像这样我想得到的查询后
enter | checking | exit
_______________________
1 |2 | 2
这是最近一年明智的汽车计数状态
如何在sql中实现这一点
我的解决办法是首先我得到的汽车清单,其中有 status 'enter'
现在我有5辆车的名字,我放在一个 temp table
现在我将重复 temp table
并按名称在订单表中搜索根据年份选择最后状态并将其放入表中
然后,在temp表的第二行,我将选择一个car名称并遍历order表,得到第二行car的最后一个状态
请告诉我还能做什么
2条答案
按热度按时间fcy6dtqo1#
你可以用
row_number()
和聚合。如果您满足于将结果放在单独的行而不是列中,那么这很简单:h4cxqtbf2#
查询可能如下所示:
您可以通过创建相应的参数表达式和窗口定义来添加任何其他列。
或者你需要一个简单的
?
小提琴