webForumDet fria alternativet

Hämta år och månad en gång

Databaser & SQL

5 svar · 353 visningar · startad av K@llen

Medlem sedan mars 20032 667 inlägg
Frågan#1

Tjabba,

Jag har en tabell med information. Varje post har en datetime kolumn i formatet åååå-mm-dd tt:ss. Nu vill jag lista alla år/månader som förekommer i tabellen, men varje kombination ska bara vara med en gång. eftersom jag hämtar mer data än datumfältet är distinct inte att tänka på.

Exempel på data:
2005-01-23 23:10
2005-01-23 23:17
2005-01-23 23:59

2005-02-03 03:10
2005-02-03 05:28

2005-03-01 04:48

Presentationen ska då bli:
2005 01 (3)
2005 02 (2)
2005 03 (1)

MySQL 4.1 som databashanterare.

RED: Glömde en viktig detalj. I presentationen ska jag även visa hur många poster det finns per år/månad

Medlem sedan dec. 200012 464 inlägg
#2
select extract(year from d),extract(month from d),count(*)
from t
group by extract(year from d),extract(month from d)
Medlem sedan mars 20032 667 inlägg
#3

Tack, perfekt. :D

Följdfråga: Om jag hämtar fler kolumner från tabellen t, då bör jag väl ha med även dessa i grupperingen?

Medlem sedan dec. 200012 464 inlägg
#4

Under förutsättning att du byter bör mot skall och du avser icke aggregerade kolumner så anser jag att frågan kan besvaras jakande.

Medlem sedan mars 20032 667 inlägg
#5

Okey, tack, då är det som jag misstänkte. :D Blev dock lite konfunderad av att läsa mysql-manualen. Normalt grupperar man på hela selectlistan när man använder aggregatfunktioner. I mysql finns det visst undantag.

mysql.com skrev:

mysql> SELECT order.custid, customer.name, MAX(payments)
-> FROM order,customer
-> WHERE order.custid = customer.custid
-> GROUP BY order.custid;

In standard SQL, you would have to add customer.name to the GROUP BY clause. In MySQL, the name is redundant if you don't run in ANSI mode.

Medlem sedan dec. 200012 464 inlägg
#6

Det där rankar jag som en av "dummaste funktion alla kategorier"

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)