I want to select distinct values from only one column (the BoekingPlaatsId column) with this query:
SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam
FROM table
GROUP BY BewonerId, Naam, VoorNaam
How do I do that in SQL Server?
I want to select distinct values from only one column (the BoekingPlaatsId column) with this query:
SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam
FROM table
GROUP BY BewonerId, Naam, VoorNaam
How do I do that in SQL Server?
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
just group By those 2 columns
Select Min(BoekingPlaatsId), Min(bewonerId), naam, voornaam
from table
group By naam, voornaam
select Naam, Voornaam, min(BewonerId), min(BoekingPlaatsId) from tableName
group by Naam, Voornaam
I think what you're looking for is something like this:
select distinct column1 from table1 where column2 = (select distinct column2 from table1)
I think you should be able to use
SELECT DISTINCT BewonerId, Naam, VoorNaam
You can't add BoekingPlaatsId
, because:
DISTINCT
looks for unique rowsBoekingPlaatsId
value you wantWhat also works is this:
SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam
FROM ...
GROUP BY BewonerId, Naam, VoorNaam
I don't do alot of this so i'm not 100% certain of the syntax so you may need to tweak it slightly, google rank over and partition. Try this...
SELECT
*,
RANK() OVER(PARTITION BY Naam order by Naam ) as Rank
FROM
TABLE
WHERE
Rank = 1
This is overkill for a 4 column table, but if you have a fairly denormalised table with alot of columns, this approach is invaluable for select distinct on 1 column.
Sounds like you want something like
select distinct(BewonerId), Naam, Voornaam from table_name