簡體   English   中英

SQL 可以比較同一表中的行,以及動態 select 值嗎?

[英]Can SQL Compare rows in same table , and dynamic select value?

最近,我得到了一張名為 Appointments 的表在此處輸入圖像描述

要求是我需要 select 通過 2 條規則為每個客戶僅一行:

如果相同時間和(相同位置或不同位置),請將 null 放在導師和位置上。

如果不同的時間和(相同的位置或不同的位置),選擇最小的行。

由於我對 SQL 非常業余,我已經搜索了自加入的方法,但在這種情況下似乎不起作用。

預期結果

在此處輸入圖像描述

謝謝大家,祝你有美好的一天...

如果有多行並且導師或位置不匹配,您似乎想要每個客戶的最短時間, null值。

您可以使用 window 函數:

select customer, starttime,
       (case when min(location) = max(location) then min(location) end) as location,
       (case when min(tutor) = max(tutor) then min(tutor) end) as tutor
from (select t.*, rank() over (partition by customer order by starttime) as seqnum
      from t
     ) t
where seqnum = 1
group by customer, starttime

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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