| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  24-05-2009, 11:35 | #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@[email protected] LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- | 
|   |   | 
|  24-05-2009, 15:25 | #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. | 
|   |   | 
|  24-05-2009, 15:39 | #3 | 
| Senior Member Iscritto dal: Oct 2005 Città: [ENOPOLIS] Montespertoli (FI) - PostePay available 
					Messaggi: 1357
				 | 
		
Totale non è una tabella, è un alias    Mosq 
				__________________ Intel E8500@[email protected] LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- | 
|   |   | 
|  24-05-2009, 15:41 | #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 15:43. Motivo: dup | 
|   |   | 
|  24-05-2009, 15:43 | #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. | 
|   |   | 
|  24-05-2009, 15:56 | #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 ) | 
|   |   | 
|  24-05-2009, 15:59 | #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: [email protected] *************************** 8. row *************************** id_fornitori: 35 cod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: [email protected] *************************** 9. row *************************** id_fornitori: 36 cod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: [email protected] *************************** 10. row *************************** id_fornitori: 5 ccod_for: 497717 fornitore: Tizio tipologia: tizieggio stato: attivo note: NULL key_user: Tizio email: [email protected] *************************** 11. row *************************** 
				__________________ Intel E8500@[email protected] LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- | |
|   |   | 
|  24-05-2009, 16:08 | #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. | 
|   |   | 
|  24-05-2009, 16:11 | #9 | ||
| Senior Member Iscritto dal: Oct 2005 Città: [ENOPOLIS] Montespertoli (FI) - PostePay available 
					Messaggi: 1357
				 | Quote: 
   Quote: 
 Mosq 
				__________________ Intel E8500@[email protected] LANPARTY UT-P45-T2RS-2x2048 VITESTA EX.ED-OCZ "Z SERIES" 1000W MODULAR-PNY8600-WB EKSUPREME-SANSO POMP-RADAIRCUBE120-STACKER STC-T01MODDED- | ||
|   |   | 
|  24-05-2009, 16:22 | #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 17:24. Motivo: Misunderstanding | 
|   |   | 
|  24-05-2009, 18:14 | #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?
		 | 
|   |   | 
|  24-05-2009, 19:53 | #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: 09:32.









 
		 
		 
		 
		









 
  
 



 
                        
                        










