Avatar billede entracore Nybegynder
31. marts 2003 - 12:44 Der er 8 kommentarer og
1 løsning

SQL Count(*)

Hey

Man kan i sin SQL forespørgsel skrive Count(*) for at få antal poster i forespørgselen. F.eks.

Select Count(*) As Num, Name From Table Group By Name

Num    Name
--------------
4      Anders
4      Peter
4      Lise
4      Lone


Men findes der en måde hvor på at man kan få Count udskrevet enkeltvis i den forstand at den tæller op?

F.eks.

Num    Name
--------------
1      Anders
2      Peter
3      Lise
4      Lone

Håber at mit spørgsmål er forståeligt.
Avatar billede pelkjaer Nybegynder
31. marts 2003 - 12:52 #1
SELECT Count(*) AS ItemCount FROM Table GROUP BY Name
Avatar billede krsk Nybegynder
31. marts 2003 - 13:01 #2
ja sådan ville jeg også gøre det :-)
Avatar billede entracore Nybegynder
31. marts 2003 - 14:46 #3
Ifgl. mit forespørgsel går der lidt kuk i det.

Jeg får forespørgsel ud på følgende måde

Num    Name    ItemCount
------------------------
1      Anders  1
2      Peter  2
3      Lise    2
4      Lone    3

Min forspørgsel ser således ud:

Select
        id,               
        Sum(Point) As qPoint,
        Count(id) AS ItemCount
    From
        Table
    Group By
        id
    Order By
        qPoint
Avatar billede ocp Nybegynder
31. marts 2003 - 15:10 #4
Så er det nok dine data den er gal med hvis det er meningen at tallene skal svare til dem i dit spr.
Avatar billede entracore Nybegynder
31. marts 2003 - 15:12 #5
Det ovenstående eksempel var blot et eksempel.... den sidste forspørgsel er den oprindelige kode.
Avatar billede ocp Nybegynder
31. marts 2003 - 15:18 #6
Men hvad mener du så? 1,2,2,3 ER vel det korrekte antal forekomster af de enkelte num?
Avatar billede entracore Nybegynder
31. marts 2003 - 15:28 #7
OCP >> Undskyld der er nok mig der har formuleret mig forket - Det jeg mener med 1, 2, 2, 3 er at jeg gerne vil udskrive min forspørgsel så jeg får vist antal af records hvor de enkelte record er talt op fra 1 til den sidste fundne record(n) i forspørgslen.

F.eks.

Record Number    Name
-----------------------
1                Peter
2                Lise
3                Anders
4                Lone
Avatar billede ocp Nybegynder
31. marts 2003 - 15:48 #8
Du vil altså nummerere posterne fortløbende? Det er ikke så let endda:

Du kan lave en stored procedure med følgende indhold:

create proc sp_Nummerer
as
-- Lav en temporær tabel med en identity-kolonne (nummererer fortløbende)
create table #tmp (nr int identity(1,1), navn varchar(50))

-- Indsæt navnene i den temp tabel
insert into #tmp
select     name
from    table
order by name

-- Vis indholdet af temptabellen
select * from #tmp

drop table #tmp
-- Selt temptabellen
Avatar billede entracore Nybegynder
31. marts 2003 - 15:54 #9
Ahh godt tænkt ocp... selvfølgelig... he he mange 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