Beste mede-tweakers,
Ik heb een tabel top2000[topyear,rank,band,song,songyear] met daarin de top2000 (zoals elk jaar uitgezonden door radio 2) lijsten van 1999 t/m 2003. Nu wil ik weten hoeveel stijgers er in 2003 zijn (t.o.v. 2002).
Een lijst van de stijgers krijg ik door:
Het lukt mij echter niet om het aantal rijen dat teruggegeven wordt door MySQL te laten tellen ik heb SELECT count(*) geprobeerd, maar dan krijg ik: "Unknown column 'A.rank' in 'scalar IN/ALL/ANY subquery'"; probeer ik SELECT *,count(topyear) dan krijg ik "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause". Als ik dan een GROUP BY topyear toevoeg (topyear is door de WHERE topyear=2003 overal gelijk) dan krijg ik "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY topyear FROM top2000 as A WHERE topyear = 2003".
iemand?
groeten,
Martin
Ik heb een tabel top2000[topyear,rank,band,song,songyear] met daarin de top2000 (zoals elk jaar uitgezonden door radio 2) lijsten van 1999 t/m 2003. Nu wil ik weten hoeveel stijgers er in 2003 zijn (t.o.v. 2002).
Een lijst van de stijgers krijg ik door:
code:
1
2
3
4
5
6
7
| SELECT *
FROM top2000 as A
WHERE topyear = 2003
HAVING A.rank < all (SELECT B.rank
FROM top2000 as B
WHERE B.topyear=2002 AND A.song=B.song AND A.band=B.band
) |
Het lukt mij echter niet om het aantal rijen dat teruggegeven wordt door MySQL te laten tellen ik heb SELECT count(*) geprobeerd, maar dan krijg ik: "Unknown column 'A.rank' in 'scalar IN/ALL/ANY subquery'"; probeer ik SELECT *,count(topyear) dan krijg ik "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause". Als ik dan een GROUP BY topyear toevoeg (topyear is door de WHERE topyear=2003 overal gelijk) dan krijg ik "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY topyear FROM top2000 as A WHERE topyear = 2003".
iemand?
groeten,
Martin