---
title: "DISTINCT och GROUP BY"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/51576-distinct-och-group-by"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Virrdo"
published: "2002-08-28T17:18:17.000Z"
updated: "2003-06-03T19:10:05.000Z"
replies: 3
views: 459
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/51576-distinct-och-group-by"
---

# DISTINCT och GROUP BY

## #1 — Virrdo, 2002-08-28T17:18Z

Vad är det egentligen för skillnad på "DISTINCT" och "GROUP BY" ? Dvs när man inte vill visa alla dubletter.

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

## #2 — LarsG, 2002-08-28T17:40Z

Dom är väl i viss mån besläktade

```
select distinct c1,c2,c3 from t

'är samma som

select c1,c2,c3 from t group by c1,c2,c3
```

man skulle alltså kunna ta bort distinct. I och för sig behövs inte group by heller

```
select a,min(b) from t group by a

'är samma sak som

select a,(select min(b) from t where a = tt.a)
 from t tt
union
select a,(select min(b) from t where a = tt.a)
 from t tt
```

Man kan alltså lägga till att man gör aggregeringar (sum, min, max etc) inom varje grupp när man har group by och sedan kan man ställa villkor på aggregeringen med hjälp av having

```
select a,sum(b) from t group by a having sum(b) > 57
```

Naturligtvis så går det att skriva om ovanstående fråga så att den inte använder vare sig group by eller having. 

Kontentan är att SQL är väldigt redundant, det finns många sätt att formulera samma sak. Ett praktiskt problem med detta är att det kan ha stor betydelse hur man formulerar sin fråga eftersom en dbms kanske inte klarar av att optimera alla typer av frågor lika bra. 
Det jag menar är att två frågor som ger samma resultat borde alltid ge samma svarstid

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

## #3 — mhedda, 2003-06-03T10:41Z

DISTINCT och SUM

Hej på er!
En liten fråga jag har gjort denna fråga den lägger ihop men
jag vill att den ska ge ett distinct svar nu blir det project 1 och summa, lika många project 1 som det finns. Hoppas ni förstår vad jag menar. 
Går det att kombinera DISTINCT med SUM eller?

$strSQL_num = "Select  SUM(tid_atgang) From tbl_tidrapport WHERE namn='$namn' AND project_id='$project_id' GROUP BY project_id";

MVH hedda

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

## #4 — aasah, 2003-06-03T19:10Z

Virrdo - distinct och group by gör inte alls samma saker!!! Distinct ser till att dubbletter inte tas med. Group by partitionerar hela tabellen per unikt värde i group by klausulen, se [här](http://www.webforum.nu/showthread.php?s=&postid=650010#post650010).

mhedda - jag förstår inte vad du menar?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/51576-distinct-och-group-by
