webForumDet fria alternativet

Räkna ... men bara en ggn?

Databaser & SQL

2 svar · 221 visningar · startad av PatrikB

Medlem sedan mars 20002 836 inlägg
Frågan#1

Helo!

nu var man här igen ....

Har kört fast med att räkna.

har en tabell med ett datum-fält, ett id-nummer.
Nu vill jag räkna ut hur många olika nummer (unikt) som förekommer varje dag.

Datumet är i formatet Date ('yyyy-mm-dd') och nr är ett heltal.

Om jag kör denna fråga:

strSQL = "SELECT DATE_FORMAT(date_field, '%m'), Count(nr_field) FROM table WHERE DATE_FORMAT(date_field, '%Y') = '2003' GROUP BY DATE_FORMAT(date_field, '%m')

får jag antal nr som hittas i varje månad ... MEN, jag vill ju bara räkna ett nr en gång och på så sätt få fram hur många olika nr som finns totalt varje månad.

dvs, jag vill få en lista typ:

Månad...................Antal NR
1 .......................... 10
2 .......................... 53
osv ....

eller går det bara med sub-selects? ....

Vill gärna inte köra en "fake" temp_table typ:

CREATE TABLE tmp_ngt_unikt ....
INSERT INTO tmp_ngt_unikt (field, field2) SELECT DATE_FORMAT(date_field, '%m'), nr_field ......
SELECT field, Count(field2) FROM tmp_ngt_unikt .....
DROP TABLE tmp_ngt_unikt

då det kan bli en jäkla massa poster att köra ....
En testkörning med 10 000 poster va ingen "hit" om man säger så.

Någon som har en lösning??

cya,
PatrikB

Medlem sedan dec. 200012 464 inlägg
#2
Count(distinct nr_field)
Medlem sedan mars 20002 836 inlägg
#3

hmm, .... va e det man brukar säga:

Toppen på s*****n gjorde susen i m***n :e

thx,
PatrikB

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)