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å?
Annonceindlæg fra QNAP
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
09. marts 2006 - 10:19
#2
NEWID() er ikke en kolonne, men en standardfunction, der ryster posen, hver gang der bliver kaldt
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
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.
09. marts 2006 - 10:37
#5
Er det kolonner i tabellen links ?
09. marts 2006 - 10:39
#6
ja. Det er jo f.eks. url, titel og beskrivelse
09. marts 2006 - 10:44
#7
Så skal du tilføje dem til group by sætningen. eller kun hente besteme felter ud.
09. marts 2006 - 10:50
#8
men jeg vil jo kun gruppere efter LKat
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. ?.
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.
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 ?
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
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()
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?
10. marts 2006 - 18:20
#15
Og her et svar :-)
10. marts 2006 - 18:21
#16
Tak for hjælpen. :)
Computerworld tilbyder specialiserede kurser i database-management