Vinnaren i pepparkakshustävlingen!
2009-05-26, 22:18
  #1
Medlem
Jag undrar hur SQL-satsen(i access) ser ut för att;
Hitta unika kombinationer mellan två kolumner, räkna dem och gruppera på en av kolumnerna.

Om tabellen ser ut såhär:

Märke | Sort
---A---|--1
---A---|--1
---A---|--2
---B---|--1
---B---|--1


Ska resultatet bli:

Märke | Sort
---A---|--2
---B---|--1

Alltså Märke A har två unika sorter och
Märke B har en unik sort!

Tack på förhand!
__________________
Senast redigerad av sockergubben 2009-05-26 kl. 22:21.
Citera
2009-05-26, 23:50
  #2
Moderator
Protons avatar
Såhär hade jag nog försökt lösa det (iaf i mysql)

Kod:
SELECT märke, count(sort) FROM(
SELECT märke, sort FROM tabell t1
UNION
SELECT märke,sort FROm tabell t2) AS tbl GROUP BY tbl.märke

Så kanske?
Citera
2009-06-22, 00:59
  #3
Medlem
Citat:
Ursprungligen postat av Proton
Såhär hade jag nog försökt lösa det (iaf i mysql)

Kod:
SELECT märke, count(sort) FROM(
SELECT märke, sort FROM tabell t1
UNION
SELECT märke,sort FROm tabell t2) AS tbl GROUP BY tbl.märke

Så kanske?
Kolla bara så att den ger rätt svar ifall mängderna har två värden som är lika. En del SQL-prylar har då en (läs: Oracle) UNION ALL som ser till att man får med alla värden i båda mängderna. I detta fall kanske det inte spelar roll. Men kanske.
Citera
2009-06-22, 10:40
  #4
Medlem
Citat:
Ursprungligen postat av SvenTuba
Kolla bara så att den ger rätt svar ifall mängderna har två värden som är lika. En del SQL-prylar har då en (läs: Oracle) UNION ALL som ser till att man får med alla värden i båda mängderna. I detta fall kanske det inte spelar roll. Men kanske.

Hej,
UNION ALL används även i SQL Server 2005. Vet inte hur det är i MS Access dock men det kan nog google ta fram åt en samt vad spelar det för roll?

Om du har
A 1
A 1
A 1
A 1

Så gör det ju inget ifall du får med distinkta värden eller alla värden då "expected output" blir detsamma (Marke: A, antal sort: 1) i detta fall men självklart ska man veta vad skillnaden mellan UNION och UNION ALL är samt ur ett performance issue förstås.

Fungerar inte denna query lite smidigare (MSSQL2k5):
Kod:
SELECT marke, COUNT(distinct sort) FROM tbl1
GROUP BY marke
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback