[英]Select distinct set of values values from table in MS Sql
我的數據庫中的表在MSSQL中具有以下結構
DayID Sequence Cities Title Hotels
----------------------------------------------------------------
1 1 Manali Day1 Hotel A
2 2 Manali Day2 Hotel B
3 2 Delhi Day3 Hotel C
4 3 Delhi Day4 Hotel D
5 3 Manali Day5 Hotel E
6 4 Manali Day6 Hotel F
現在我需要結果如下
Cities
------
Manali
Delhi
Manali.
我使用了按城市分組,但它只給了兩個城市
Manali
Delhi
但是我需要以下輸出。
Manali
Delhi
Manali
請提出建議。
提前致謝。
嘗試這個:
SELECT Cities
FROM (
SELECT Cities, DayID,
ROW_NUMBER() OVER (ORDER BY DayID) -
ROW_NUMBER() OVER (PARTITION BY Cities ORDER BY DayID) AS grp
FROM mytable) AS t
GROUP BY Cities, grp
ORDER BY MIN(DayID)
計算字段grp
標識具有相同“ Cities
值的連續記錄的孤島。 在GROUP BY
子句中使用此字段,我們可以提取所需的Cities
值序列。
注意:上面的查詢在SQL Server中有效。
根據要求,您可以按以下方式分組:從表中按城市選擇城市
首先,確保表格已排序,以便我們可以在數據步驟中使用“ by”選項:
proc sort data=tablename;
by sequence cities;
run;
在數據步驟中,使用“ by”子句選擇每個組的第一行並輸出。 僅根據用戶要求“保留”城市
data desired;
keep cities;
set tablename;
by sequence cities;
if first.cities then output;
run;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.