Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-03-2008, 12:25   #1
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
[Postgres] Query un po Intrigata...

Scusatemi, mica potreste darmi una mano in una query bastarda che non riesco a eseguire ?

Nella tabella "query_result" ci sono una serie di telefonate da cellulare,

Nel "campo1" ci sono i numeri di cellulare,


Devo selezionare tutti i record dove il numero di cellulare non ha effettuato piu' di una chiamata, se un numero di cellulare ha effettueto anche solo 2 chiamate non devo selezionarne neppure una



Database Postgres:
---------------------------------------------
SELECT
public.query_result.campo1,
public.query_result.campo2,
public.query_result.campo3,
public.query_result.campo4,
public.query_result.campo5
FROM
public.query_result;
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 12:35   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Conti il numero di record per ciascun numero di telefono, e tieni solo quelli il cui conteggio e' proprio uguale ad 1
__________________
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 14:07   #3
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Domanda1:
-----------------------------------------------
Devo selezionare tutti i record dove il numero di cellulare non ha effettuato piu' di una chiamata, se un numero di cellulare ha effettueto anche solo 2 chiamate non devo selezionarne neppure una

Risposta1:
-----------------------------------------------
Conti il numero di record per ciascun numero di telefono, e tieni solo quelli il cui conteggio e' proprio uguale ad 1


mi sembra che la domanda e la risposta coincidono, quindi e' un record doppio e quindi non e' da considerare, giusto ???

no dai, sto' schersando.....,

solo che il mio problema e' che non so come scriverla quella SELECT.
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 14:27   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
select numero,count(*) cnt
FROM tabella
GROUP BY numero
HAVING count(*)=1
__________________
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 14:40   #5
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
ERROR: column "query_result.campo1" must appear in the GROUP BY clause or be used in an aggregate function


dato che ho piu' campi da selezionare non mi funziona se non aggiungo tutti in group by, sai siamo su POSTGRES,
ma allora se li metto tutti mi selezionera tutti i record e non solo quelli non duplicati........


Database Postgres:
---------------------------------------------
SELECT
public.query_result.campo1,
public.query_result.campo2,
public.query_result.campo3,
public.query_result.campo4,
public.query_result.campo5
FROM
public.query_result;
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 14:44   #6
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
devi fare le cose per gradi.
Prima cerchi i numeri di telefono con la query che ho messo su'.
Poi usi quella query per tornare i join di nuovo con la tabella, per andare a prendere anche tutti gli altri campi di ciascuno dei numeri di telefono.

Postgres ha detto bene, in SQL standard durante una query di gruppo non puoi ritornare qualcosa che non sia nella GROUP BY o una funzione di gruppo (o una costante)
Chi lo permette (MySql) bara, e prima o poi ti riestituisce qualcosa che non ti aspetti.
__________________
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 14:59   #7
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
[quote=gugoXX;21600066]
Poi usi quella query per tornare i join di nuovo con la tabella, per andare a prendere anche tutti gli altri campi di ciascuno dei numeri di telefono.QUOTE]

scusami ma sono troppo indietro in sql per cogliere il senso della tua indicazione, non ci arrivo proprio, e' la prima volta oggi che mi trovo a lavorare i dati in questo modo.
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 15:18   #8
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
SELECT * FROM tabella WHERE campo1 IN
(select campo1
FROM tabella
GROUP BY campo1
HAVING count(*)=1)

Ovvero, prendi tutti i record della tabella, il cui campo1 e' presente una sola volta nella tabella stessa.
__________________
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2008, 15:42   #9
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Perfetto, grande, veramente grazie, mi hai salvato da nolti casini, grazie ancora, a presto, ciao!!
race2 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Pasticcio Tesla: nessuno vuole il Cybert...
Qualcomm, il nuovo SoC top di gamma &egr...
La memoria che cambierà l'AI: il ...
AI Overviews, un editore statunitense po...
AMD promette 1000 FPS con i Ryzen 9000X3...
L'IA italiana di Aton punta alla Silicon...
Amazon taglia i prezzi: upgrade da gamer...
Aruba Cloud semplifica e potenzia l'offe...
Il futuro del nastro magnetico è ...
Roborock Q7 M5 sotto i 180€: super offer...
Borderlands 4 su PC, il CEO di Gearbox a...
Samsung Galaxy S25 a partire da 669€: of...
TikTok, un'ulteriore proroga da Trump in...
Amazon fa tremare i prezzi: 27 super off...
Apple perde l'ex capo di Siri e figura c...
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: 16:29.


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