---
title: "Distinct"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/42331-distinct"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "HeHo"
published: "2002-04-23T12:27:47.000Z"
updated: "2002-04-23T14:49:46.000Z"
replies: 5
views: 269
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/42331-distinct"
---

# Distinct

## #1 — HeHo, 2002-04-23T12:27Z

Hur skriver jag en fråga där jag vill ha en av varje unik på kolumnen ordernr, men samtidigt kolla igenom alla värden i kolumnen Bil_Id?

har själv börjat så här:

```
Call init()
strSQL = "SELECT DISTINCT ordernr, BatchNr, lopnr FROM best WHERE BatchNr='" &batch& "' ORDER BY lopnr ASC"
Set objRS = objConnection.Execute(strSQL)	
i=1
Do until objRS.EOF
   [blue]'Här blir det naturligtvis fel när man inte plockar med den kolumnen i frågan.[/blue]
   If Cstr(objRS("Bil_Id")) = "0" then
      arrTab(i) = "1"
   else
      arrTab(i) = "0"
   end if
   arrID(i) = objRS("ordernr")
   i=i +1
   objRS.MoveNext()
Loop
Call CleanUP()
```

 
Fattar ni vad jag menar?? :x  :x 
Jag kan ju i och för sig göra en till fråga och jämföra Bil_id och stoppa in i vektorn, men jag är mest bara nyfiken på om man kan lösa det hela med en enda fråga.

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

## #2 — LarsG, 2002-04-23T12:36Z

Något med group by förmodar jag borde passa.

Det jag inte förstår är vad du vill göra med bil_id.

Distinct appliceras alltid på alla kolumner så det är ingen framkomlig väg.

Kan du beskriva lite mer.

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

## #3 — HeHo, 2002-04-23T13:03Z

OK! Jag vill kolla om Bil_Id är 0. Är Bil_Id 0 så hämtas även andra värden in från en annan tabell längre ned på denna ASP sida. 
Samma Ordernr kan ju förekomma på flera rader med med olika Bil_Id. Men är Bil_Id 0 på en rad är alla andra med samma ordernr oxå 0. Ska fungera som en flagga. Bil_Id =0 så hämta in från en ny tabell.
Hmm...känns som jag inte kan förklara vad jag menar......

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

## #4 — LarsG, 2002-04-23T13:13Z

```
query = "select ordernr,min(bil_id) from best group by ordernr"
set rs = connect.execute(query)

while not rs.eof then
    if cint(rs("bil_id")) = 0 then
       'hämta mer
    end if
    rs.movenext
wend
```

borde väk gå bra. (Om inte bil_id kan vara negativt.)

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

## #5 — HeHo, 2002-04-23T14:07Z

:e Ja va smart! GROUP BY hur funkar det då? Är det som DISTINCT eller vad? Jag har aldrig använt det tidigare........kanske måste ta och läsa lite i mina böcker... :e
Tack för hjälpen!

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

## #6 — LarsG, 2002-04-23T14:49Z

Distinct är bara ett specialfall av group by

```
select distinct aleb,bleb from ogrish
```

ger samma resultat som 

```
select aleb,bleb from ogrish group by aleb,bleb
```

(Om du inte kör Oracle som av någon outgrundlig anledning inte tillåter den senare konstruktionen).

Det som skiljer group by från distinct är att man kan utföra aggregeringar på de kolumner som inte ingår i group by. Som i ditt fall, att man för varje grupp av ordernr hittar den bil_id som har lägsta värdet.

De aggregeringsfunktioner som finns i de flesta DBMS är 

MAX  -- hitta största värdet 
MIN  -- hitta minsta värdet 
AVG  -- beräkna genomsnittligt värde (för numeriska kolumner)
SUM  -- Summera alla värden (för numeriska kolumner)
COUNT -- räkna antal förekomster

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/42331-distinct
