簡體   English   中英

從MS Sql中的表中選擇值的不同集合

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

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