Avatar billede mydream Nybegynder
09. marts 2006 - 10:08 Der er 15 kommentarer og
1 løsning

Group by problem

Jeg har et lille group by problem.

Jeg vil gerne skrive følgende:

SELECT * FROM Links WHERE LStatus='Klar' GROUP BY LKat order by LKat asc,LEmailStatus desc, NEWID()

og jeg vil bruge Group by i stedet for order by, da jeg ikke ønsker at sortere efter LKat men kun gruppere efter det.

Jeg vil bruge NEWID() for at det ikke altid er den samme kategori der står øverst i min linksektion.

Men med group by får jeg at vide, at jeg ikke kan medtage felter der ikke er med i group by. Hvordan gør jeg det så?
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 10:13 #1
Måske:
SELECT *, NEWID() AS NEWID FROM Links WHERE LStatus='Klar' GROUP BY LKat order by LKat asc,LEmailStatus desc, NEWID
Avatar billede mydream Nybegynder
09. marts 2006 - 10:19 #2
NEWID() er ikke en kolonne, men en standardfunction, der ryster posen, hver gang der bliver kaldt
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 10:24 #3
det ved jeg men på den måde bliver den en kolonne i statementen og kan så vidt jeg husker bruges til group by
Avatar billede mydream Nybegynder
09. marts 2006 - 10:28 #4
den vil stadig ikke medtage alle de andre kolonner, jeg skal have med. Der er jo nok 5 der ikke er nævnt i sql sætningen.
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 10:37 #5
Er det kolonner i tabellen links ?
Avatar billede mydream Nybegynder
09. marts 2006 - 10:39 #6
ja. Det er jo f.eks. url, titel og beskrivelse
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 10:44 #7
Så skal du tilføje dem til group by sætningen.
eller kun hente besteme felter ud.
Avatar billede mydream Nybegynder
09. marts 2006 - 10:50 #8
men jeg vil jo kun gruppere efter LKat
Avatar billede chrisp Nybegynder
10. marts 2006 - 15:21 #9
Hvorfor vil du lave group by på Lkat, du laver jo ingen sum, count eller andet group by agtigt i dit select. ?.
Avatar billede mydream Nybegynder
10. marts 2006 - 17:44 #10
Jeg har en linkssektion, som er opdelt i kategorier, f.eks.:

Fly
jljsdlkjsldkj  lkjjs fdlkjl lkj sfdlkj lk
sdfsjdkfjslkjf kjdslkfjkld f ksfdlk ks fd

Biler
jlkjlkj lkj lk lk lkj lkj
lklkj lkj lk lk lk l

Jeg vil gerne have rystet posen hver gang, så det ikke altid er de samme kategorier der er øverst, og ikke altid de samme links der ligger øverst indenfor hver kategori.
Avatar billede chrisp Nybegynder
10. marts 2006 - 17:55 #11
Er det rigtig forstået at det du gerne vil er at at vælge X tilfældige links ud fra hver  kategori ?
Avatar billede mydream Nybegynder
10. marts 2006 - 17:57 #12
Jeg har 2 mål:

1. Jeg vil gerne have at rækkefølgen af mine 7 kategorier bliver tilfældig
2. Indenfor en kategori skal rækkefølgen også være tilfældig
Avatar billede chrisp Nybegynder
10. marts 2006 - 18:08 #13
Hmmm lidt tricksy,.. men denne her tror jeg gør det du ønsker:

Select Links.* From
Links
left join
(Select lKat, NewId() as LKatId From Links group by lkat) as katorder
on katorder.lkat = Links.lkat
order by lKatId, newId()
Avatar billede mydream Nybegynder
10. marts 2006 - 18:18 #14
Helt præcis. Det virker perfekt.

Det med 2 kald indeni hinanden er altså smart.

Lægger du et svar?
Avatar billede chrisp Nybegynder
10. marts 2006 - 18:20 #15
Og her et svar :-)
Avatar billede mydream Nybegynder
10. marts 2006 - 18:21 #16
Tak for hjælpen. :)
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