Подтвердить что ты не робот

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

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

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

Как это сделать в SQL Server?

4b9b3361

Ответ 1

DISTINCT должен работать, если вам просто нужны имена пользователей:

SELECT DISTINCT BewonerId, Naam, Voornaam
FROM TBL

но если вам нужны минимальные значения ID, группируйте их по именам...

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

Ответ 2

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

SELECT DISTINCT BewonerId, Naam, VoorNaam

Вы не можете добавить BoekingPlaatsId, потому что:

  • DISTINCT ищет уникальные строки
  • Вам нужно указать, что вам нужно BoekingPlaatsId (В случае Ян Янссен, вы хотите BoekingPlaatsId 1 или 2?)

Что также работает:

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

Ответ 3

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

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

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

Ответ 4

только группа В этих двух столбцах

  Select Min(BoekingPlaatsId), Min(bewonerId), naam, voornaam
  from table
  group By naam, voornaam

Ответ 5

select Naam, Voornaam, min(BewonerId), min(BoekingPlaatsId) from tableName
group by Naam, Voornaam

Ответ 6

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

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

Ответ 7

Вот как вы можете выбрать из таблицы только уникальные значения для своего столбца:

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 

Вам не нужна группа, чтобы выполнить это.

Ответ 8

У меня возникла аналогичная проблема, и для меня решение использовало предложение GROUP BY. Поэтому в основном я сгруппировал все блоги с тем же названием, что и одна группа.

Синтаксис:

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

Возможно, вы группируете несколько столбцов

Ответ 9

Похоже, вы хотите что-то вроде

select distinct(BewonerId), Naam, Voornaam from table_name