[英]How can I select all the rows which do not share a column value with another row which is null?
[英]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.