---
title: "DISTINCT fast i \"grupper\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/153032-distinct-fast-i-grupper"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "inspiro"
published: "2006-10-26T22:32:29.000Z"
updated: "2006-10-29T18:40:18.000Z"
replies: 6
views: 425
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/153032-distinct-fast-i-grupper"
---

# DISTINCT fast i "grupper"

## #1 — inspiro, 2006-10-26T22:32Z

Hej! Lite förenklat så ser resultatet jag hämtar ut från två tabeller så här (det finns fler kolumner där varje rad är unik, därför fungerar inte distinct):

```
Kol 1 Kol 2 
1      A     
2      A     
2      A     
1      B      
2      B    
3      B    
2      C    
2      C    
2      C
```

Men jag skulle vilja att det såg ut så här:

```
Kol 1   Kol 2
1       A    
2       A    
1       B    
2       B    
3       B    
2       C
```

Alltså att samma id i kolumn 1 inte får förekomma mer än en gång där kolumn 2 innehåller A, inte mer än en gång där kolumn 2 innehåller B osv... någon som förstår vad jag är ute efter?

Använder sql server, och det är när jag joinar ihop två tabeller som det blir fel.

Permalänk: https://www.webforum.nu/p/153032

## #2 — LarsG, 2006-10-27T08:13Z

Det finns alltså ytterligare kolumner i resultatsetet? 

```
C1   C2   C3
-----------
2      A    2
2      A    1
```

? 

Vilket värde från C3 vill du ha? Har jag fel eller har jag fel?

Permalänk: https://www.webforum.nu/p/1890686

## #3 — inspiro, 2006-10-27T18:38Z

Ja, fler kolumner... och det spelar ingen roll vilket värde från kolumn 3 som kommer med i det här fallet, typ den första bara. I ditt exempel skulle jag alltså bara vilja få ut "2 A 2" men få bort den andra. Tänkte alltså om det går att använda DISTINCT på en del av kolumnerna!

Permalänk: https://www.webforum.nu/p/1890859

## #4 — emission, 2006-10-27T23:28Z

Nej, det kan du inte göra, men du kan använda en GROUP BY och kasta dit aggregatfunktioner på de övriga kolumnerna, men då kan du inte veta från vilken rad de kommer (det kan variera mellan kolumnerna)

```
SELECT C2,C2,MAX(C3) as C3 FROM tabellen GROUP BY C1,C2
```

Permalänk: https://www.webforum.nu/p/1890906

## #5 — inspiro, 2006-10-29T11:10Z

Ok, tack, jag ska nog ändra lite i strukturen, det är antagligen feltänk från början. En annan fråga i lite av samma ämne... jag försöker göra det här:

```
SELECT DISTINCT TOP (3) X
FROM Y
ORDER BY DateTime
```

Om man tar med "DateTime" i selecten så fungerar själva frågan, men då blir den ju inte distinct eftersom varje "DateTime" är unik. Vet ni hur man kan göra istället? Vill alltså att X ska vara unikt.

Permalänk: https://www.webforum.nu/p/1891260

## #6 — LarsG, 2006-10-29T15:30Z

```
select top 3 x,max(datetime) as obsequent
   from y
 group by x
 order by obsequent desc
```

Permalänk: https://www.webforum.nu/p/1891334

## #7 — inspiro, 2006-10-29T18:40Z

Tack, LarsG! Du är ju helt otrolig på sql... :)

Permalänk: https://www.webforum.nu/p/1891396

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/153032-distinct-fast-i-grupper
