04. december 2008 - 21:37 Der er 13 kommentarer og
1 løsning

sql - kategori brugt flest gange samt antal brugte subkategorier.

Tabel: tblLinks
Felter: CategoryID, SubCategoryID

Jeg har brugfor at 3 tal:
1) Den CategoryID der er brugt flest gange - antallet af gange

2) Hvor mange forskellige SubCategoryID er taget i brug for de records med den mest brugte CatetoryID

3) Sum af 1 og 2
Avatar billede mugs Novice
04. december 2008 - 21:50 #1
1:
SELECT TOP 1 tbllinks.CategoryID, Count(tbllinks.CategoryID) AS AntalOfCategoryID
FROM Categotyid
GROUP BY tbllinks.CategoryID
ORDER BY tbllinks.CategoryID DESC;

2:
SELECT TOP 1 Tabel1.felt1, Count(Tabel1.felt1) AS AntalOffelt1
FROM Tabel1
GROUP BY Tabel1.felt1
ORDER BY Count(Tabel1.felt1) DESC;
Avatar billede Slettet bruger
04. december 2008 - 21:52 #2
lav en forespørgsel hvor du kun vælger CategoryID og så når man har trykket på det der sigma tegn, så har du mulighed for at vælge antal. Så sorterer du faldende... Så dobbeltklikker du ved siden af tabellen i det grå område og her kan du vælge at du kun vil have 1 post vist...

Så laver du en ny forespørgsel, her vælger du den forespørgsel du lige har lavet og så din tblLinks og laver en relation mellem CategoryID'erne, så har du fat i alle de felter i tblLinks, som har den mest brugte CategoryID!~)
Avatar billede mugs Novice
04. december 2008 - 21:53 #3
Prøv at rette Nr. 1 til denne:

SELECT TOP 1 tbllinks.CategoryID, Count(tbllinks.CategoryID) AS AntalOfCategoryID
FROM tbllinks
GROUP BY tbllinks.CategoryID
ORDER BY Count(tbllinks.CategoryID) DESC;
Avatar billede Slettet bruger
04. december 2008 - 21:55 #4
ja, præcis... brug mugs' sidste forespørgsel, som den ene forespørgsel og så link den sammen med din tabel i en ny forespørgsel!~)
Avatar billede Slettet bruger
04. december 2008 - 21:59 #5
nu ser jeg at du er faktisk ikke interesseret i posterne kun summerne, så lyt til mugs istedet... tag hans 2 forespørgsler ind i en ny forespørgsel og så...

Sum1og2: antalofcategoryid+antaloffelt1

!~)
Avatar billede mugs Novice
04. december 2008 - 22:07 #6
Jeg ser, at Ner. 2 ikke er tilrettet dine objektnavne:

2:
SELECT TOP 1 tbllinks.CategoryID, Count(tbllinks.CategoryID) AS AntalOfCategoryID
FROM tbllinks
GROUP BY tbllinks.CategoryID
ORDER BY Count(tbllinks.CategoryID) DESC;
04. december 2008 - 22:40 #7
Takker - jeg tester i morgen
05. december 2008 - 08:27 #8
1) OK
SELECT TOP 1 tblLinks.CategoryID, Count(tblLinks.CategoryID) AS AntalOfCategoryID
FROM tblLinks
GROUP BY tblLinks.CategoryID
ORDER BY Count(tblLinks.CategoryID) DESC;


2) FEJL - Denne SQL leverer blot den SubCategory som er mest brugt, men det skal være den SubCategory, som er mest brugt indefor den mest brugte Category!

SELECT TOP 1 tblLinks.SubCategoryID, Count(tblLinks.SubCategoryID) AS AntalOfSubCategoryID
FROM tblLinks
GROUP BY tblLinks.SubCategoryID
ORDER BY Count(tblLinks.SubCategoryID) DESC;

3) Til slut skal alle SQL'er kodes sammen til EN sætning, således jeg kun får et tal
Avatar billede terry Ekspert
05. december 2008 - 09:08 #9
SELECT TOP 1 L.CategoryID, Count(L.CategoryID) AS AntalCatID, (SELECT count(*) FROM (SELECT S.CategoryID, S.SubCategoryID
FROM tbllinks S GROUP BY S.CategoryID, S.SubCategoryID) WHERE S.CategoryID = L.CategoryID) AS AntalSubID, [AntalCatID]+[AntalSubID] AS Tot
FROM tblLinks AS L
GROUP BY L.CategoryID
ORDER BY Count(L.CategoryID) DESC;
05. december 2008 - 10:32 #10
Hej terry - tak for din deltagelse - den rammer næsten

Jeg får følgende retur fra den sql-sætning

Category som er mest brugt       
Antal gange den er brugt - 1)
Antal SubCats der er brugt - 2) ikke helt det jeg skal have
Total - 3)

Resultat er 3, 19, 5, 24     

2) giver antal subcats der er brugt - det jeg har brug for er antallet af gange den mest brugte subcat er brugt indenfor den mest brugte category

Resultat skulle være 3, 19, 9, 28
(Category 3 er brugt 19 gange og indenfor category 3 er SubCat 4 brugt 9 gange)
Avatar billede terry Ekspert
05. december 2008 - 10:48 #11
Question 2 was
"Hvor mange forskellige SubCategoryID er taget i brug for de records med den mest brugte CatetoryID"

So you only want to see how many time the sub cat which has been used most with in the max cat?
Avatar billede terry Ekspert
05. december 2008 - 11:04 #12
SELECT TOP 1 L.CategoryID, Count(L.CategoryID) AS AntalCatID, (SELECT Max(MaxSubCat) FROM (SELECT S.CategoryID, S.SubCategoryID, Count(S.SubCategoryID) AS MaxSubCat
FROM tbllinks AS S
GROUP BY S.CategoryID, S.SubCategoryID
ORDER BY S.CategoryID DESC , S.SubCategoryID DESC
) WHERE S.CategoryID = L.CategoryID) AS AntalSubID, [AntalCatID]+[AntalSubID] AS Tot
FROM tblLinks AS L
GROUP BY L.CategoryID
ORDER BY Count(L.CategoryID) DESC;
05. december 2008 - 11:11 #13
Perfekt - mange tak
Avatar billede terry Ekspert
05. december 2008 - 11:18 #14
selv tak
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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