簡體   English   中英

如何在共享另一列相同值的兩行之間比較列值?

[英]How do I compare column values between two rows which share the same value of another column?

我有一個包含這些列的表:

name, start_date, end_date

在表中,有許多行共享相同的名稱。 例如,表中可以同時存在[John Smith,10/17/17,12/17/17]和[John Smith,01/17/18,02/17/18]。 我想給的名字,找到最早的開始日期和最晚的結束日期,並獲得這兩個值之間的差異並將其顯示為一列。

對於上面的示例,select語句應返回以下內容:

[名稱,以星期為單位的日期差],在這種情況下,日期差為02/17/18-10/17/17

您需要按名稱對行進行分組:

SELECT name, max(end_date) - min(start_date)
FROM table
GROUP BY name

不確定使用的是哪種DBMS,但是如果是SQL Server,並且希望在幾周內有所不同,則可以編寫以下內容

SELECT name
     , [Date difference in weeks] = DATEDIFF(week, min(start_date), max(end_date))
FROM table
GROUP BY name

嘗試使用以下查詢。

    select name, max(end_date)-min(start_date)
    from table
    group by name;

暫無
暫無

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

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