sql - GROUP BY 和 ORDER BY ASC & DESC
问题描述
我有一张表,spa
其中包含我需要的大部分信息:
我加入另一张桌子 ,client
来抢占last_name
场地:
我需要的是为每个and和最后一个room_code
获得第一个, service_detail
, & 。provider_start_time
sba_date
provider_code
provider_end_time
以我的图像为例,预期的结果是:
解决方案
我认为这可以通过窗口函数来完成,row_number()
并且last_value()
:
select
room_code,
service_detail,
sba_date,
provider_start_time,
provider_end_time,
last_name
from (
select
s.*,
c.last_name,
row_number() over(
partition by s.sba_date, s.provider_code
order by s.provider_start_time
) rn,
last_value(provider_end_time) over(
partition by s.sba_date, s.provider_code
order by s.provider_start_time
range between unbounded preceding and unbounded following
) provider_end_time
from spa s
inner join client c on c.client_code = s.provider_code
) t
where rn = 1
sba_date
内部查询连接两个表,并对具有相同和的记录组中的记录进行provider_code
升序排列provider_start_time
;它还计算provider_end_time
同一组内的最后一个值。然后,外部查询过滤每个组中的第一条记录。
推荐阅读
- java - JaveFX 中的 GridPane
- java - 如何从字符串中删除子字符串?
- python - mosquitto 代理在接收 MQTT 连接数据包时出错(python)
- python - 有没有更有效的方法来更新 tkinter 上的标签?
- django - 由于我的 html 模板,django is_valid() 返回 false 且没有错误
- c# - 为什么这个带有反射语句的 linq 会击败我编译的表达式树?
- python - Python顶层for循环只运行一次而不是遍历列表
- voiceover - 如何点击链接在mac画外音中听到它?
- python - 有没有办法让 Numba 不要尝试编译函数的特定行?
- r - Rstudio- 删除依赖 rJava 和 xlsx