Выберите отличные значения из 1 столбца

Я хочу выбрать отличные значения только из одного столбца (столбец BoekingPlaatsId) с этим запросом:

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

Как я делаю это в SQL Server?

24
задан Liam 15 June 2016 в 15:33
поделиться

7 ответов

Я думаю, вы сможете использовать

SELECT DISTINCT BewonerId, Naam, VoorNaam

Вы можете ' t add BoekingPlaatsId , потому что:

  • DISTINCT ищет уникальные строки
  • Вам необходимо указать, какое BoekingPlaatsId значение вы хотите
    (In case of Jan Janssens, do you want BoekingPlaatsId 1 or 2?)

What also works is this:

SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam
FROM ...
GROUP BY BewonerId, Naam, VoorNaam
7
ответ дан 29 November 2019 в 00:01
поделиться

DISTINCT should work if you just want the user names:

SELECT DISTINCT BewonerId, Naam, Voornaam
FROM TBL

but if you need the minimum ID values, group by the names...

SELECT MIN(BoekingPlaatsId), MIN(BewonerId), Naam, Voornaam
FROM TBL
GROUP BY Naam, Voornaam
20
ответ дан 29 November 2019 в 00:01
поделиться

Я не делаю этого много, поэтому я не уверен на 100% в синтаксисе, поэтому вам, возможно, придется немного подправить его, повысить рейтинг Google и разделить его. Попробуйте это ...

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

Это излишек для таблицы из 4 столбцов, но если у вас достаточно денормализованная таблица с большим количеством столбцов, этот подход неоценим для выбора отдельных столбцов в 1 столбце.

6
ответ дан 29 November 2019 в 00:01
поделиться

Я думаю, что вы ищете что-то вроде этого:

select distinct column1 from table1 where column2 = (select distinct column2 from table1)
0
ответ дан 29 November 2019 в 00:01
поделиться
select Naam, Voornaam, min(BewonerId), min(BoekingPlaatsId) from tableName
group by Naam, Voornaam
0
ответ дан 29 November 2019 в 00:01
поделиться

just group By those 2 columns

  Select Min(BoekingPlaatsId), Min(bewonerId), naam, voornaam
  from table
  group By naam, voornaam
0
ответ дан 29 November 2019 в 00:01
поделиться

Sounds like you want something like

select distinct(BewonerId), Naam, Voornaam from table_name
-2
ответ дан 29 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: