---
title: "Hjälp med SQL-fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/182468-hjälp-med-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "colahelge"
published: "2010-02-17T10:31:07.000Z"
updated: "2010-02-17T21:31:15.000Z"
replies: 5
views: 859
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/182468-hjälp-med-sql-fråga"
---

# Hjälp med SQL-fråga

## #1 — colahelge, 2010-02-17T10:31Z

MySQL 5

```
[B]ID, Arr, Serial, X, Namn[/B]
1, 41, 212, 1, Erik
2, 41, 212, 1, Erik
3, 41, 212, 1, Erik
4, 34, 212, 1, Peter
5, 23, 232, 1, Olle
6, 13, 121, -1, Lotta
```

**ID** \- unikt ID för varje event
**Arr** \- Arrangör inte unikt för någon Serial
**Serial** \- Ett ID som inte är unikt för någon Arr
**Namn** \- Namn på eventet

Målet är att hämta alla rader där X inte är -1. Inga konstigheter. Problemet är att det kan finnas dubletter i systemet (vilket är fallet på ID 1-3). Så jag undrar om man kan få till en fråga som tar bort dessa dubletter. 

Man vet att det är en dublett på Arr + Serial som alltid är en unik kombo. (Arr = 41 och Serial = 212 finns alltså inte på något annat ställe än för ID 1-3)

Mitt målresultat skulle alltså vara:

```
1, 41, 212, 1, Erik
4, 34, 212, 1, Peter
5, 23, 232, 1, Olle
```

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

## #2 — nitro2k01, 2010-02-17T10:39Z

Välkommen till webForum!
GROUP BY!

```
SELECT ID, Arr, Serial, Namn
FROM tabell
WHERE x > -1
GROUP BY Arr
```

Edit: Du vill ta bort dem... Hmm, vänta lite...

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

## #3 — voigtann1, 2010-02-17T10:39Z

SELECT DISTINCT ....

är det det det du är ute efter?

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

## #4 — nitro2k01, 2010-02-17T11:04Z

Jag ser två valmöjligheter.
1) "Fuska" och skapa en temporär tabell där du insertar resultatet från min fråga ovan:

```
INSERT INTO tabell_temp (ID, Arr, Serial, x, Namn)
SELECT ID, Arr, Serial, x, Namn
FROM tabell
WHERE x > -1
GROUP BY Arr
```

2) Försöka dig på att DELETEa de oönskade raderna. Jag kan försöka knåpa ihop en fråga om du absolut vill gå den vägen.

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

## #5 — colahelge, 2010-02-17T14:16Z

Sry, uttryckte mig lite klumpigt. Sömnbrist gör en dum i huvvet.

Jag vill alltså inte "fysiskt" ta bort dubletterna, jag vill bara inte ha med dem i mitt urval. 

> **[voigtann1 skrev:](https://www.webforum.nu/p/1498008)**
>
> SELECT DISTINCT ....
> 
> är det det det du är ute efter?

Något sådant ja, problemet är att det gäller för en specifik kombination av Arr och Serial. Det kan finnas flera event av samma Arr och alla dom ska med och det finns även olika event med samma Serial, Men de poster där Arr och Serial är lika (för de olika posterna, se ID 1-3 i första inlägget) så är det dubletter och bara 1 ska räknas.

Dessa dubletter är ett fel i systemet, eventen har blivit rapporterade flera gånger. Det bästa vore ju givetvis att ta bort alla dubletter bara, men detta kräver en hel del manuellt spårande i systemet (inte bara denna tabell, utan massa transaktioner fram och tillbaka). Och det finns ingen större nytta av det heller, förutom just för att få fram antal event (utan dubletter).

Kanske inte ens är möjligt i SQL men det vore en liten och bra lösning på ett litet problem. Hoppas jag förtydligat lite.

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

## #6 — Peter S, 2010-02-17T21:31Z

```
select
	min(id),
	arr,
	serial,
	min(x),
	min(namn)
from
	t
group by
	arr,
	serial
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/182468-hjälp-med-sql-fråga
