1列

2009-12-16 28 views
20

我想從只有一列(在BoekingPlaatsId列)與此查詢選擇不同的值,選擇不同的值:1列

SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam 
FROM table 
GROUP BY BewonerId, Naam, VoorNaam 

我該怎麼做,在SQL服務器?

+3

「我想選擇[...] ** **不同的價值觀」。真棒多麼親密的人可以不知道它的答案:) – 2015-08-28 07:51:18

回答

18

DISTINCT應該工作,如果你只是想用戶名:

SELECT DISTINCT BewonerId, Naam, Voornaam 
FROM TBL 

但如果你需要的最低ID值,組由名稱...

SELECT MIN(BoekingPlaatsId), MIN(BewonerId), Naam, Voornaam 
FROM TBL 
GROUP BY Naam, Voornaam 
+3

一切都分組是很好的一個小桌子,但它吸大桌。 – 2009-12-16 23:45:59

0

只是一羣被那些2列

Select Min(BoekingPlaatsId), Min(bewonerId), naam, voornaam 
    from table 
    group By naam, voornaam 
0
select Naam, Voornaam, min(BewonerId), min(BoekingPlaatsId) from tableName 
group by Naam, Voornaam 
0

我想你要尋找的是這樣的:

select distinct column1 from table1 where column2 = (select distinct column2 from table1) 
+0

子查詢不是標量 – 2009-12-16 23:57:33

7

我想你應該能夠使用

SELECT DISTINCT BewonerId, Naam, VoorNaam 

您不能添加BoekingPlaatsId,因爲:

  • DISTINCT尋找唯一
  • 您需要指定什麼BoekingPlaatsId值你想
    (在揚森斯的情況下,你想BoekingPlaatsId 1或2?)

什麼也的工作原理是:

SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam 
FROM ... 
GROUP BY BewonerId, Naam, VoorNaam 
+0

Jup dude!你的第二個查詢就像一個魅力!這是我第一次在這些論壇上,但你們讓我相信了我!我會再次在這裏衝浪!我想我會從你們那裏學到很多東西!問題解決了;) – Parm 2009-12-16 23:44:45

3

我不做這使很多我不是100%確定的語法,所以你可能需要微調,谷歌排名和分區。試試這個...

SELECT 
    *, 
    RANK() OVER(PARTITION BY Naam order by Naam) as Rank 
FROM 
    TABLE 
WHERE 
    Rank = 1 

這是矯枉過正了4列的表格,但如果你有一個相當去歸一化表列很多的,這種做法是非常寶貴的選擇上1列不同。

-2

聽起來像是你想要的東西,像

select distinct(BewonerId), Naam, Voornaam from table_name 
+0

downvote for syntax syntax – 2011-12-16 20:14:27

+0

此代碼仍將運行;這只是一個解決方案。 SELECT DISTINCT a,b,c與SELECT DISTINCT(a),b,c相同。 DISTINCT不是函數調用;這是一個查詢選項。 – 2013-03-20 21:00:23

0

這是如何從一個表,你列唯一的值選擇:

CREATE VIEW [yourSchema].[v_ViewOfYourTable] AS 
WITH DistinctBoekingPlaats AS 
(
    SELECT [BewonerId], 
      [Naam], 
      [VoorNaam], 
      [BoekingPlaatsId], 
      ROW_NUMBER() OVER(PARTITION BY [BoekingPlaatsId] ORDER BY DESC) AS 'RowNum' 
    FROM [yourSchema].[v_ViewOfYourTable] 
) 
SELECT * 
FROM DistinctProfileNames 
WHERE RowNum = 1 
--if you would like to apply group by you can do it in this bottom select clause but you don't need it to gather distinct values 

你不需要按完成這個。

0

我遇到了類似的問題,對我來說,解決方案是使用GROUP BY子句。 所以基本上,我把所有的博客都標爲一個組。

語法:

SELECT post_title, post_link 
FROM blogs 
WHERE [ conditions ] 
GROUP BY post_title 
ORDER BY post_title; 

也許你是分組多列