Quote Originariamente inviata da bomberdini Visualizza il messaggio
se vuoi inserire in select un campo quando hai un group by, quel campo deve apparire con una funzione di aggregazione.

In MS Access ci sono 2 funzioni molto utili e intuitive : FIRST() , LAST()

in mysql non ci sono ma puoi comunque usare MAX(),MIN()

Quindi, aggiungi il campo che vuoi , ma con la funzione di aggregazione MAX o MIN
Ciao bomberdini
Se non ho capito male ho modificato la precedente query
codice:
SELECT gruppo, MAX( prezzo ) AS max_prezzo
FROM sql_libri
GROUP BY gruppo
ORDER BY max_prezzo
con questa
codice:
SELECT gruppo, MAX( Titolo ) AS Titolo, MAX( prezzo ) AS max_prezzo
FROM sql_libri
GROUP BY gruppo
ORDER BY max_prezzo
ma come c'è da aspettarsi i due MAX mi ritornano rispettivamente i MAX (alfabetico o numerico) del titolo e del prezzo, ma non me li allinaea.
Con questa seconda query ottengo questo
codice:
gruppo         Titolo             max_prezzo
scansoft     PhotoShow         230.00
macromedia     Macromedia Spectra     240.00
corel         KPT Vector Effects     260.00
adobe         Adobe Photoshop 7.0     499.99
curiouslabs     Poser 4 Pro         670.00
La reale situazione è invece questa:
Gruppo adobe:
max_prezzo = 499.99
titoli corrispondenti:
Adobe Digital Video Collection
Adobe GoLive/LiveMotion Pack

Gruppo corel:
max_prezzo = 260.00
titoli corisponenti:
CorelDRAW

Gruppo macromedia:
max_prezzo = 240.00
titoli corisponenti:
Macromedia Spectra

ecc per le altre voci.

Quindi non credo di dover cercare il MAX anche del titolo, ma un approccio diverso alla query.

Come dicevo prima potrei anche cimentarmi con una WHERE ma non so come fare per allineare i valori massimi dei titoli coi titoli stessi.

Con la prima Query che ho presentato riesco solo ad allineare il gruppo col massimo prezzo dei titoli.
O forse non posso propio pretendere di visualizzare, oltre al gruppo, i soli Titoli che hanno il prezzo maggiore?