Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-06-2008, 16:56   #1
IAmZak
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 654
[pg sql] una domanda su una query e una su un trigger

ciao!

1)come si fa a fare delle percentuali?
per esempio ho una tabella con un 30 persone, con una colonna chiamata lavoro, e devo dire per ogni tipo di lavoro, la percentuale della gente che lo fà.
se 5/10 fanno "operaio", allora la query mi deve dare come risultato 50%.
ma il problema è che il /10 può aumentare o diminuire.

2)esiste da qualche parte una guida niubba che spieghi i trigger, fatti come funzioni e trigger. tipo:

CREATE OR REPLACE FUNCTION abc_FX() RETURNS trigger AS $abc_FX$
BEGIN
.........
END;
$abc_FX$ LANGUAGE plpgsql;

CREATE TRIGGER abc
AFTER INSERT OR UPDATE ON tabella
FOR EACH ROW EXECUTE PROCEDURE abc_FX()

grazie!!!
__________________
Macbook Pro 15'' Mid 2015
IAmZak è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2008, 19:40   #2
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
Per quanto riguarda la prima domanda, ho elaborato questa query.
Si presuppone che la tabella sia:

-----------
| Mansioni |
-----------
Nominativo
mansione

Codice:
SELECT A.mansione as "Mansione", count(A.mansione) * 100.0 / totale as "percentuale" FROM mansioni A, (SELECT count(*) as "totale" FROM mansioni) as B GROUP BY A.mansione,B.totale
Ho provato ad inserire questi tre record:

Franco Rossi, Ing
Giuseppe Bianchi, Imp
Antonio Verdi, Imp

Con risultati

Ing | 33.333333
Imp | 66.666666
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2008, 20:11   #3
IAmZak
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 654
complimenti, e grazie
__________________
Macbook Pro 15'' Mid 2015
IAmZak è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2008, 21:21   #4
IAmZak
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 654
perfetto, ha funzionato.
ora sto provando a rendere la cosa più precisa.
dunque ammettiamo che ho una tabella così:

CREATE TABLE persone
(
cod_fiscale character varying(20) NOT NULL,
nome character varying(20) NOT NULL,
cognome character varying(30) NOT NULL,
data_n date NOT NULL,
tipo character(15),
CONSTRAINT persone_pkey PRIMARY KEY (cod_fiscale)
)

dove in tipo metto lavoratore, studente, niente.

se io dovessi restituire le percentuali di persone (lavoratore+studenti, non separati) suddivisi in fasce di età (21-25, 26-30, ecc.), ma solo se sono lavoratori o studenti (quindi come totale devo guardare anche i niente)?

cioè ho 3 lavoratori, 3 studenti, 3 niente.
sarebbe 66,6%. però devo anche dividere questo 66,6 in rapporto alle fasce di età









ah! quella di prima l'ho risolta così: now() - interval '31 years' < data_n AND now() - interval '26 years' e funziona!
__________________
Macbook Pro 15'' Mid 2015

Ultima modifica di IAmZak : 14-06-2008 alle 21:25.
IAmZak è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2008, 11:43   #5
amedeoviscido
Senior Member
 
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
Quote:
Originariamente inviato da IAmZak Guarda i messaggi
complimenti, e grazie
Figurati

Quote:
Originariamente inviato da IAmZak Guarda i messaggi
cod_fiscale character varying(20) NOT NULL,
Se posso suggerirti una cosa, il codice fiscale non è character varying, poiché è sempre di 16 caratteri.

Quote:
Originariamente inviato da IAmZak Guarda i messaggi
se io dovessi restituire le percentuali di persone (lavoratore+studenti, non separati) suddivisi in fasce di età (21-25, 26-30, ecc.), ma solo se sono lavoratori o studenti (quindi come totale devo guardare anche i niente)?
Bella domanda.
Per restituire la percentuale di lavoratori+studenti, basta modificare la prima query che ti ho dato in questo modo:

Codice:
SELECT A.non_niente * 100.0 / B.totale FROM (SELECT count(*) as "non_niente" FROM persone WHERE tipo<>'niente') as A, (SELECT count(*) as "totale" FROM persone) as B
Suddividere però per fasce d'età, difficilino... ho trovato una soluzione ma richiede una query per ogni fascia di età:

Codice:
SELECT A.non_niente * 100.0 / B.totale FROM (SELECT count(*) as "non_niente" FROM persone WHERE tipo<>'niente' AND now() - interval '25 years' < data_n AND now() - interval '21 years' > data_n) as A, (SELECT count(*) as "totale" FROM persone) as B
Ovviamente per ogni query devi modificare la fascia d'età.
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17
Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo
amedeoviscido è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Qualcomm HBC supera la validazione in la...
Tachyum avvia la procedura di fallimento...
La sonda spaziale NASA Lucy ha raggiunto...
Le GeForce RTX 5000 scarseggiano, tornan...
Raspberry Pi 5, il prezzo è ormai...
I frigoriferi dei supermercati diventano...
Le vecchie fotocamere digitali compatte ...
La Cina potrebbe rinviare il ritorno del...
Verizon non è preoccupata della c...
RDNA 5 sulle APU AMD, ma non per tutti: ...
Marvell acquisisce Lumentum per 115 mili...
La febbre dei data center fa impennare i...
ECOVACS T90S OMNI crolla a 499€ su Amazo...
In Cina i camion elettrici hanno gi&agra...
Attacchi hacker ai supermercati in Europ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v