Avatar billede hoejgaard Juniormester
23. september 2008 - 14:58 Der er 5 kommentarer og
1 løsning

tælle antal ens forekomster

Hej
Jeg har en tabel som her :

id  maal
1    ab
2    fe
3    se
4    fe
5    se
6    se

hvor id er unik.

Jeg skal ha talt antal ef ens forekomster op under 'maal'
og lagt i en anden tabel :

id  maal  antal
1    ab    1
2    fe    2
3    se    3

Hvordan gør jeg det ??
Avatar billede pidgeot Nybegynder
23. september 2008 - 15:08 #1
Dette skulle gøre det:
INSERT INTO tabel2 (maal,antal) SELECT maal, COUNT(*) FROM tabel1 GROUP BY maal

...husk dog at dette ikke bliver opdateret automatisk ved nye poster i tabel1. Afhængigt af formålet kan det derfor være en ide bare at bruge det du har i forvejen, og så lave COUNT når du har brug for det.
Avatar billede hoejgaard Juniormester
23. september 2008 - 15:25 #2
det skal helst opdateres ret ofte, så tænker lidt på et cronjob..
Kan man lave et cronjob der udføres hvert 10 min eller lignende ??
Avatar billede hoejgaard Juniormester
24. september 2008 - 19:35 #3
??
Avatar billede pidgeot Nybegynder
24. september 2008 - 19:53 #4
Hvis du skal have opdateret så tit, så vil jeg nu næsten foreslå du holder dig til at lave COUNT(*) on-demand, kombineret med et indeks på maal. Så undgår du redundans, og risikerer dermed ikke at dine data bliver forældede.

Men ellers er det jo bare et spørgsmål om at skrive et script der tømmer tabel2 og kører den der query - selvfølgelig forudsat at du ikke sletter de data du har fået talt sammen, ellers er vi nok ude i at lave opdateringen manuelt. Det script får du så bare kørt med et cronjob - enten på din server, hvis du har mulighed for det, eller med en af de eksterne cronjob-services, såsom http://cronjob.de.

Alternativt kan du lave den query en gang, og så ændre den kode der laver indsættelse i tabel1 så den tæller tabel2 op. Du kan måske endda helt undvære tabel1 så, hvis der da ikke er andre data end det der.
Avatar billede hoejgaard Juniormester
14. januar 2009 - 17:56 #5
læg et svar pidgeot
Avatar billede pidgeot Nybegynder
14. januar 2009 - 18:23 #6
Værsgo.ærsgo.
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