|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Città: [ENOPOLIS] Montespertoli (FI) - PostePay available
Messaggi: 1357
|
[Mysql] Aiuto per una query
Ciao a tutti
Vengo subito al dunque.....voglio sapere quante volte sono ripetuti in una tabelle i fornitori di un azienda, così; SELECT fornitore, COUNT( * ) AS totale FROM fornitori GROUP BY (fornitore) having totale >1; Mi presenta una schermata così; +------------------------+--------+ | fornitore | totale | +------------------------+--------+ | Tizio | 4 | | Caio | 4 | | Sempronio | 4 | +------------------------+--------+ 3 rows in set (0.00 sec) Come faccio adesso a vedere le 4 righe "sciolte" di ciascun fornitore? In poche parole, come faccio a vedere le 12 righe? Grazie Mosq
__________________
Intel E8500@4200Mhz@1.35-DFI LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Cosi'?
Codice:
SELECT * FROM totale ORDER BY fornitore
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Città: [ENOPOLIS] Montespertoli (FI) - PostePay available
Messaggi: 1357
|
Totale non è una tabella, è un alias
![]() Mosq
__________________
Intel E8500@4200Mhz@1.35-DFI LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 24-05-2009 alle 14:43. Motivo: dup |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Era FROM fornitori ovviamente... lettura affrettata
Altrimenti spiega bene cos'hai e cosa vorresti avere, magari anche con un esempio.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
Codice:
SELECT * FROM Fornitori WHERE Fornitore IN ( SELECT fornitore FROM fornitori GROUP BY (fornitore) having COUNT( * ) >1 ) |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2005
Città: [ENOPOLIS] Montespertoli (FI) - PostePay available
Messaggi: 1357
|
Quote:
La prima query mi fa vedere quali sono i fornitori che si presentano + volte. Voglio potere vedere, non un raggruppamento ma le tuple singole. Es. Tizio si presenta ben 4 volte, vorrei vedere 4 tuple di tizio, 4 di Caio e 4 di Sempronio. Voglio solo vedere, dei fornitori presentati + volte, ogni singola riga. es: *************************** 7. row *************************** id_fornitori: 34 cod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: Tizio@tizio.it *************************** 8. row *************************** id_fornitori: 35 cod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: Tizio@tizio.it *************************** 9. row *************************** id_fornitori: 36 cod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: Tizio@tizio.it *************************** 10. row *************************** id_fornitori: 5 ccod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: Tizio@tizio.it *************************** 11. row ***************************
__________________
Intel E8500@4200Mhz@1.35-DFI LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Non ci sono.
Dici di volere una cosa pero' poi nell'esempio ne mostri un'altra. Codice:
Voglio potere vedere, non un raggruppamento ma le tuple singole. Es. Tizio si presenta ben 4 volte, vorrei vedere 4 tuple di tizio Codice:
SELECT * FROM fornitori ORDER BY id_fornitori solo non e' trasposto, cosa che in SQL non e' affatto semplice. Se ti serve proprio questo, lo saprei fare sotto Oracle e sotto SqlServer. Niente MySql mi spiace.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#9 | ||
Senior Member
Iscritto dal: Oct 2005
Città: [ENOPOLIS] Montespertoli (FI) - PostePay available
Messaggi: 1357
|
Quote:
![]() Quote:
Mosq
__________________
Intel E8500@4200Mhz@1.35-DFI LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- |
||
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Pensavo fosse un problema di presentazione piu' che di contenuto.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 24-05-2009 alle 16:24. Motivo: Misunderstanding |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
gugo se fosse sql server, ci sarebbe qualche improvement possibile da un punto di vista delle performance?
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Si potrebbe provare con una analytic function, ma non penso che si senta molto
Codice:
SELECT * FROM ( SELECT *,COUNT(*) OVER (PARTITION BY id_fornitori) cnt FROM fornitori ) AS tmp WHERE cnt>1 Direi che si guadagna tanto di piu' quanti piu' sono i record che soddisfano la clausola.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:47.