[MySQL] query MAX van subselect

Pagina: 1
Acties:

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-02 17:47
Ik probeer met mysql de MAX waarde te bepalen van de waarden die ik selecteer met een subselect.

Ik lees op verschillende plaatsen dat het kan, maar ik krijg een syntax error, terwijl de subquery opzichzelf prima werkt.

De query:

SQL:
1
2
 
SELECT MAX( SELECT SUM(a.waarde) FROM tabel a GROUP BY a.group)


Referenties over hetzelfde:

http://www.tek-tips.com/viewthread.cfm?qid=249885 (niet in mysql)
http://www.tek-tips.com/v...ad.cfm?qid=1083860&page=6
http://www.pcreview.co.uk/forums/thread-1170109.php

Volgens mij kan het ook met

SELECT MAX(a.waarde) FROM tabel a WHERE ... IN ( subquery ),
maar ik wil nog veel meer in deze query selecteren, zoals de SUM(a.waarde) van elke group.

Heeft iemand een idee hoe dit moet?

Ik blijf er iig vrij nuchter onder....


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Welke versie van MySQL? Wat is de foutmelding precies?

En, [norml]
SQL:
1
 en 
[/] zijn handig om je query hier leesbaar te houden

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je kan alleen groeperen op velden die je ook selecteert.

edit:
Maar dat gaat hier niet fout. Je krijgt een syntax error omdat je AFAIK geen subquery kunt meegeven als parameter van MAX.

[ Voor 55% gewijzigd door NMe op 18-01-2006 15:27 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-02 17:47
Mysql 4.1

Ok, als dat niet kan, hoe zou het dan wel mogelijk zijn om die max te bepalen, zonder het in de PHP code te gaan tellen..?

Ik blijf er iig vrij nuchter onder....


  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Zo zou het wel moeten werken:
SQL:
1
SELECT SUM(veld) AS sum_veld FROM tabel GROUP BY een_veld ORDER BY sum_veld DESC LIMIT 1

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 20:27
maartenvdv schreef op woensdag 18 januari 2006 @ 15:19:
SELECT MAX(a.waarde) FROM tabel a WHERE ... IN ( subquery ),
maar ik wil nog veel meer in deze query selecteren, zoals de SUM(a.waarde) van elke group.
Wat volgens mij wel werkt:
SQL:
1
2
3
4
SELECT     MAX(SUM(a.waarde)) AS max_waarde, 
           SUM(a.waarde) AS sum_waarde
FROM       tabel 
GROUP BY   waarde

Niet zelf getest, 't is laat, maar volgens mij werkt dit wel O-)

Hiermee limiteer je jezelf dan wel inderdaad tot groupen van 1 kolom. Max data / som data uit meerdere kolommen tegelijk halen kan AFAIK alleen door inderdaad per max een subquery uit te voeren wat niet mag (omdat wat -NME- zei je geen subquery kan opgeven als MAX parameter).

Waar heb je het overigens voor nodig? Want als je de data toch in PHP bijvoorbeeld gebruikt kun je een stuk simpeler alleen SUM(veld) selecten en daar PHP's MAX(veld_sum) achteraan kwakken :)

Wellicht dat dit ook nog van pas komt :)

[ Site ] [ twitch ] [ jijbuis ]

Pagina: 1