Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:32 Der er 16 kommentarer og
1 løsning

Spørgsmål omkring count!

Hvordan får jeg count til at retunere 2 (altså x antal månder, isedet for de 31.
Se nedenfor:
mysql> select DATE_FORMAT(date, '%Y-%m') as mindate
    -> from millperformance
    -> where millnumber = 10
    -> GROUP BY mindate;
+---------+
| mindate |
+---------+
| 2002-10 |
| 2002-11 |
+---------+
2 rows in set (0.00 sec)

mysql> select count(*) as antal from millperformance where millnumber = 10;
+-------+
| antal |
+-------+
|    31 |
+-------+
1 row in set (0.01 sec)

mysql>
Avatar billede disky Nybegynder
15. december 2002 - 00:36 #1
hvad med:
select DATE_FORMAT(date, '%Y-%m') as mindate, count(*) as antal from millperformance where millnumber = 10 GROUP BY mindate;

Eller måske
select DATE_FORMAT(date, '%Y-%m') as mindate, count(*) as antal from millperformance where millnumber = 10 GROUP BY antal;

Er ikke helt sikker og kan desværre ikke teste det.
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:38 #2
Får følgende når jeg tester dine:
Men jeg ønsker i dette tilfælde at få 2, nemlig de antal forskellige måndere der er!
mysql> select DATE_FORMAT(date, '%Y-%m') as mindate, count(*) as antal from millperformance where millnumber
BY mindate;
+---------+-------+
| mindate | antal |
+---------+-------+
| 2002-10 |    10 |
| 2002-11 |    21 |
+---------+-------+
2 rows in set (0.04 sec)

mysql>
mysql> select DATE_FORMAT(date, '%Y-%m') as mindate, count(*) as antal from millperformance where millnumber
BY antal;
ERROR 1056: Can't group on 'antal'
mysql>
mysql>
Avatar billede disky Nybegynder
15. december 2002 - 00:39 #3
hehe

hvad med

select DATE_FORMAT(date, '%Y-%m') as mindate, count(mindate) as antal from millperformance where millnumber = 10 GROUP BY mindate;
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:40 #4
Nope, her er svaret!
mysql> select DATE_FORMAT(date, '%Y-%m') as mindate, count(mindate) as antal from millperformance where millnumber = 10
GROUP BY mindate;
ERROR 1054: Unknown column 'mindate' in 'field list'
mysql>
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:44 #5
Kom nu Disky, du er min SQL helt! :)
Avatar billede disky Nybegynder
15. december 2002 - 00:46 #6
nu overdriver du vist lidt:

select DATE_FORMAT(date, '%Y-%m') as mindate, count(*) as antal from millperformance GROUP BY mindate limit 0,1;

Om den er helt vandtæt er jeg dog ikke sikker på, men prøv lige
Avatar billede disky Nybegynder
15. december 2002 - 00:48 #7
øv det er den ikke
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:48 #8
Desværre ikke. :(
Her er svaret:
mysql> select DATE_FORMAT(date, '%Y-%m') as mindate, count(*) as antal from millperformance GROUP BY mindate limit 0,1;
+---------+-------+
| mindate | antal |
+---------+-------+
| 2002-10 |    20 |
+---------+-------+
1 row in set (0.01 sec)
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:48 #9
hehehe
Du var squ hurtigere end mig!
Avatar billede disky Nybegynder
15. december 2002 - 00:51 #10
er du sikker på den holder hele tiden ?

Jeg synes ikke den gør
Avatar billede erikjacobsen Ekspert
15. december 2002 - 00:52 #11
Behøver svaret stå i en tabel? Er der et (script)-sprog i den
anden ende kan du jo få antallet af rækker der.
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:53 #12
jeg skal bruge svaret til at definere længden på et array.
Avatar billede disky Nybegynder
15. december 2002 - 00:54 #13
jeg tror jeg har den:
select count(distinct(DATE_FORMAT(date, '%Y-%m'))) from millperformance

Den tæller antal uniqe datoer i dit format.

Erik:
Det ville da være meget uhensigstmæssigt hvis der er MANGE records.
Avatar billede hunter1978 Nybegynder
15. december 2002 - 00:57 #14
Der var den!!!!
FEDT TAKKER :) :)
Avatar billede disky Nybegynder
15. december 2002 - 00:58 #15
Selv tak.

Altid rart at kunne hjælpe.
Avatar billede erikjacobsen Ekspert
15. december 2002 - 00:59 #16
Ja, disky, men billigere end først at få antallet, og bagefter
spørge igen for at få indholdet til hans array.
Avatar billede disky Nybegynder
15. december 2002 - 01:00 #17
Det afhænger af mange ting om du har ret i det, men i nogle tilfælde korrekt.

Men manden bad om antallet, ikke om alle poster for derudfra at regne antal.
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