簡體   English   中英

我如何使一個sql語句按不同順序排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM