[英]How do I make a sql sentence to do order by before distinct?
例如,我有此order
表,它具有以下列:order_id,user_id,create_time,city_id。
現在,我想輸入用戶的最新訂單,因此基本上我想做的是:
select distinct(order.user_id), city_id
from order
where city_id != 0
order by create_time desc
但是據我所知, distinct
將在order by
之前運行,這意味着在達到order by
之前,每個用戶只剩下一個user_id
,那么我該怎么做order by
先執行order by
?
有一個子查詢,返回每個用戶的最新create_time。 JOIN
該結果。
select o1.user_id, o1.city_id
from order o1
join (select user_id, max(create_time) as newest_create_time
from order
where city_id != 0
group by user_id) o2
on o1.user_id = o2.user_id and o1.create_time = o2.newest_create_time
where o1.city_id != 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.