Avatar billede Superstes Novice
30. september 2010 - 12:04 Der er 3 kommentarer og
1 løsning

MEDIAN-værdier med krøller

Hej.

Et opfølgende spørgsmål på:
http://www.eksperten.dk/spm/919834

SELECT
COUNT(MNEMONIC) AS "Antal",
(MEDIAN (RESULT)) AS "Median"
FROM tabel
WHERE
bla bla bla
GROUP BY MNEMONIC

Nu er det sådan, at til udregning er median, er der nogle af "mnemonic"'erne der med fordel kan betragtes som én.

F.eks.
MNEMONIC = "AA" og "AB" kan sammenlignes, og bør betragtes som én, og den samlede MEDIAN skal præsenteres som f.eks. "AA+AB", ligesom det samlede antal præsenteres som "AA+AB"

Kan det lade sig gøre, at gruppere enkelte mnemonic-værdier i forbindelse med udregning af MEDIAN-værdien, og få dem præsenteret som en samlet median-værdi, med et samlet antal?
Avatar billede pgroen Nybegynder
30. september 2010 - 12:19 #1
SELECT
COUNT(CASE mnemonic WHEN 'AA' THEN 'AA+AB'
                    WHEN 'AB' THEN 'AA+AB'
                              ELSE mnemonic END) AS "Antal",
(MEDIAN (RESULT)) AS "Median"
FROM tabel
WHERE
bla bla bla
GROUP BY (CASE mnemonic WHEN 'AA' THEN 'AA+AB'
                        WHEN 'AB' THEN 'AA+AB'
                                ELSE mnemonic END);

- Hvis du har mange undtagelser a la det ovenstående bør man
nok forsøge et andet approach, ellers bliver select'en nok lidt
langhåret...
Avatar billede Superstes Novice
30. september 2010 - 14:00 #2
Vil ovenstående eksempel også samle median-beregningen? Det ser da ikke umiddelbart sådan ud.
Avatar billede pgroen Nybegynder
30. september 2010 - 14:10 #3
Jo, du grupperer på din 'spøjse' måde,
og beregner median(result) individuelt for hver af disse grupper
Avatar billede pgroen Nybegynder
30. september 2010 - 17:48 #4
Takker

jeg sad lige og kiggede på select'et
en lidt pænere løsning vil være noget i stil med:

SELECT
  COUNT(*) AS "Antal",
  mnemonic2 AS "Mnemonic",
  median(result) AS "Median"
FROM (SELECT result,
            CASE mnemonic
                WHEN 'AA' THEN 'AA+AB'
                WHEN 'AB' THEN 'AA+AB'
                ELSE mnemonic
              END
            AS mnemonic2
          FROM TABLE
          WHERE bla bla bla)
GROUP BY mnemonic2;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester