Newsgroup: it.comp.appl.access
Titolo: query con raggruppamenti obbligatori

Ho un piccolo problema con una query
La mia tabella contiene:
id (contatore)
ricerca (testo)
corrispondenze (numerico)
data (data)
Devo selezionare tutti i campi, raggruppare per ricerca, CONTARE le ricerche
uguali e scrivere le corrispondenze.
Praticamente se un utente ha cercato "casa",  poi un altro utente ha cercato
"casa" e  un terzo ha cercato "legno":
casa, 2, 4, 22/02/2005
legno, 1, 0, 23/02/2005
dove:
    casa è la ricerca, due le volte che è stata cercata, 4 i risultati di
una ricerca, e poi la data di ricerca.
    legno è la ricerca, 1 è il numero di volte che è stata cercata, 0 i
risulati, e poi la data
Io uso questa query , ma mi dice che è impossibile non includere
[corrispondenze ] nella funzione di aggregazione.
Solo che io non voglio ne raggruppare ne sommare i risultati, ma riportarne
il valore.
SELECT COUNT(id) AS occorrenze,ricerca,corrispondenze,data GROUP BY ricerca;

 i risulati, e poi la data
SELECT ricerca, COUNT(*) AS occorrenze,
SUM(corrispondenze) AS Risultati FROM miaTabella GROUP BY ricerca;
Se ti serve anche la data, aggiungila sia nella SELECT sia nella GROUP BY.
HTH.
Alessandro

Ecco, il problema è proprio qui: io non voglio che si raggruppi per un terzo
campo. Il terzo campo che in realtà dovrebbe essere corrispondenze, ma non
importa, mi interessa solamente che riporti il valore.
Non riesco in nessun modo. Mi dice che deve far parte della raggruppamento.
Ma io non lo voglio raggruppato.

 Ecco, il problema è proprio qui:
Già...
nel non quotare così da non far capire nulla a chi legge...
Antonio

Armand Federico - INFO wrote:

Non ti offendere, ma non ho capito un'acca...
Alessandro

Se aggiungo un terzo campo nella query, ma nella clausola GROUP BY, lui
raggruppa anche secondo quei valori.
Invece io non voglio raggruppare per un ulteriore criterio, ma nell'esempio
in questione, voglio riportarne solo il valore della data.
Se invece raggruppa anche per data, ottengo meno records, ovviamente.
CAMPI
a
b
c
SELECT a,b,c FROM nometabella GROUP BY a,b;
Non mi lascia fare una query cosě, e mi dice che devo raggruppare anche per
c.

 Se aggiungo un terzo campo nella query, ma nella clausola GROUP BY, lui
E continuiamo a non quotare...
E DUE!
Antonio

 anche per c.
Se ci pensi è logico. Supponiamo:
id ricerca corrispondenze data
1  casa    2                       1/1/2005
2  casa    2                       1/1/2005
3  casa    3                       2/1/2005
4  casa    3                       2/1/2005
Query1:
SELECT ricerca, COUNT(*) AS occorrenze,
SUM(corrispondenze) AS risultati FROM miaTabella GROUP BY ricerca;
ricerca occorrenze risultati
casa    4                10
Query2:
SELECT data, ricerca, COUNT(*) AS occorrenze,
SUM(corrispondenze) AS risultati FROM miaTabella GROUP BY data, ricerca;
data         ricerca occorrenze risultati
1/1/2005 casa     2               4
2/1/2005 casa     2               6
Query3:
SELECT data, ricerca, COUNT(*) AS occorrenze,
SUM(corrispondenze) AS risultati FROM miaTabella GROUP BY ricerca;
In questo caso quale data scegliere? Vedi che non ha senso?
Quello che puoi fare, se vuoi, è:
Query4:
SELECT ricerca, COUNT(*) AS occorrenze,
SUM(corrispondenze) AS risultati, MAX(data) AS UltimaRicerca,
MIN(data) AS PrimaRicerca FROM miaTabella GROUP BY ricerca;
ricerca occorrenze risultati UltimaRicerca PrimaRicerca
casa    4                10        1/1/2005        2/1/2005
HTH.
Alessandro

Avevo pensato che ci fosse ambiguità, ma pensavo ne scegliesse una. Invece
dava errore.
Allora avevo provato anch'io con MAX(nomecampo) e funzionava.
Il problema è questo:
Se in una data i risultati ottenuti sono diversi? Come succede del resto.
Perchè il Db viene aggiornato e le ricerche danno esiti diversi.
Per quello non volevo raggruppare. volevo due risultati.
casa,4,10,1/1/2005
casa,2,12,2/1/2005
Perchè la sezione casa è stta integrata e gli utenti trovano più
corrispondenze.
Grazie mille

 Armand Federico - INFO wrote:
Vedi Alex, non c'è tanto da prendersela con Armandino perchè non rispetta le
norma del NG, quanto con te:
se non rispondevi finchè non si fosse adeguato, forse adesso avrebbe
capito!!!
Antonio


Oh cavolo: credevo che uno degli obiettivi (il principale, oserei dire) di
un NG fosse di aiutarsi reciprocamente. Invece scopro ora che tale obiettivo
è secondario: innanzitutto viene il quoting poi l'aiuto (salvo che non mi
sfugga qualcos'altro in mezzo).
Mea culpa: quindi non prendetevela con Armandino perchè non rispetta le
norma del NG, prendetevela con Alex che offre il suo modesto contributo
indipendentemente da tali regole.
Sigh...
Alessandro

capito!!!
Se hai avuto tempo di scrivermi, hai avuto anche tempo di leggere il post
precedente! ;-P

 Alessandro
Alex, a prescindere dalla sua temporanea latitanza, Antonio è tra gli 
storici del NG e uno che ha sempre dispensato soluzioni.
Tu non sbagli nel fine, ma nel metodo.
Questo Ng nonostante sia autoregolamentato è abbastanza "ordinato", grazie 
ai pescetti "pulitori" come Antonio.
Il metodo è sbagliato per un motivo molto semplice: il quoting serve per 
creare il "post perfetto", cioè un post finale che abbia in testa un buon 
subject (ma questo non fa parte del quoting), subito dopo la domanda e poi 
la soluzione del problema. Pensa a come presenta le FAQ Karl.
quindi chi legge  l'ultimo messaggio sa come si è evoluta la cosa, contando 
anche sulla sfoltitura del di più.
Quindi il quoting dovrebbe essere fatto ordinando cronologicamente gli 
interventi, o inframezzandoli, quando il testo a cui si riponde è lungo e 
con diversi punti da focalizzare, togliendo il soverchio tipo battute (a cui 
per es. io stesso ricorro moltissimo), o fuori tema, e soprattutto non 
esagerando nel senso opposto togliendo tutto il precedente (questo perchè ci 
sono molti, come me, che nascondono i post già letti e risondo a centinaia 
di post al giorno e non possono ricordarseli tutti e quindi si rileggono il 
post ben ordinato).
La logica è quella di aiutare (nessuno lo fa per lavoro e grossi troll qui 
non ce ne sono - se non qualcuno che però non merita considerazione -), 
l'efficacia è grande, quindi aiutare chi aiuta è sicuramente un atto dovuto.
Spero di averti chiarito la questione.
Considera, che qui nessuno più di me, è contento quando Antonio sbaglia, ma 
stavolta sicuramente non l'ha fatto.
Ma sottolineo _stavolta_  ;-P
ciao
MAssimiliano
Avere il post perfetto serve perchè se domani ho lo stesso problema che ha 
avuto tizio qualche giorno fa, mi vado a prendere i post precedenti e 
risolvo il mio problema. Senza ripeter di nuovo la richiesta e costringere a 
chi risponde a ripeter n volte la stessa cosa. 

 ha scritto nel messaggio
news:d04e2r$lnk$1...@newsread.albacom.net...

Certo, quindi questo thread diventa una questione personale tra Armandino
che scrive come gli pare e tu che fai il Robin Hood risolvendogli i
problemi.
Tutti gli altri possibili fruitori del thread (questo sì è basilare, che il
NG è pubblico e tutti dovrebbero poter usufruire dei consigli a prescindere
da chi ha iniziato il thread. Anzi, spesso si potrebbe trovare la soluzione
al proprio problema senza creare un nuovo thread) possono anche morire o
fare i salti mortali per cercare di capire come evolve il tetta a tetta tra
te e Armandino...
Antonio

 capire come evolve il tetta a tetta tra te e Armandino...
Rispondo a entrambi, visto che gli argomenti mi sembrano sostanzialmente gli
stessi.
L'eccezione è che il quoting corretto serve principalmente ad agevolare la
futura ricerca di soluzioni a problemi simili.
Ebbene, io utilizzo abbastanza frequentemente i NG alla ricerca di risposte
ai miei quesiti (tramite Google): quando trovo un THREAD (sottolineo il
termine perchè usato da Antonio e perchè, secondo me, importante)
potenzialmente interessante ho l'abitudine di leggerlo partendo dal primo
post e scorrendo più o meno rapidamente le relative risposte. Non ho MAI
avuto problemi a capire di cosa si stesse parlando, anzi spesso il quoting
mi infastidisce perchè mi obbliga a usare il mouse più di quanto sarebbe
necessario.
Certo se si prende un singolo messaggio *fuori dal contesto* il quoting
aiuta (anche se non sempre da solo è sufficiente).
Ora può anche essere che io sia un'eccezione, ma francamente non mi pare un
metodo particolarmente strano il mio.
Naturalmente non pretendo di farvi cambiare idea (so che sarebbe una
battaglia persa, e comunque non è mia intenzione): intendo solo chiarire
quale criterio mi guida nel postare.
Infine, sostenere che l'invio di una (possibile) soluzione a una richiesta
con il quoting errato o mancante sia "Il metodo è sbagliato" mi sembra
quanto meno in contraddizione con il fine (sul quale sembriamo d'accordo):
come utente che cerca una soluzione, è meglio trovare una domanda con il
quoting errato e la risposta oppure solo la domanda?
Alessandro

 numeri ci sono.
Opinione che rispetto me che non mi sento di condividere: intendo dire non
che qui non ci sono i grandi numeri, piuttosto dubito:
a) che sia un metodo efficace per "educare"
b) che i benefici per gli utenti siano superiori ai danni
Alessandro

 Alessandro
Ciao
MAssimialino 

 corrispondenze.
Se vuoi evidenziare le ricerche con risultati diversi NELLA STESSA DATA
aggiungi il campo corrispondenze alla GROUP BY.
Altrimenti non ho capito l'obiezione...
Alessandro

 quoting errato e la risposta oppure solo la domanda?
Per esperienza (circa 8 anni qua sopra) se non rispondi a qualcuno che viola
le norme di autogestione, quello o non torna più (e sopravviviamo al dramma)
o si adegua.
Se rispondi, quello continuerà a postare in maniera scorretta.
Questo è un dato di fatto.
Se il fine è quello di mantenere i post secondo le norme di autogestione, la
conclusione è ovvia.
Antonio

 Ma sottolineo _stavolta_  ;-P
Oh, avevi iniziato bene, ti perdi sul fondo!!!
Antonio

 TI IMPLORO! Quota correttamente, che se no ci vado di mezzo io...
ROTFL!
Antonio

 autogestione, la conclusione è ovvia.
Basta che vi mettiate d'accordo circa il fine ultimo del NG :-P
Alessandro

 Basta che vi mettiate d'accordo circa il fine ultimo del NG :-P
Se tu conoscessi veramente il fine ultimo del NG, dovremmo ucciderti!!!
Antonio

 conclusione è ovvia
Guarda che adesso scherzo, il fatto è che per quotare, devo copiare il
testo, incollarlo, mettere il simbolo > davanti a tutte le righe, e in
alcuni casi lo trovo pesante e inutile. in altri condividi che i post siano
più chiari. (anche se non penso che si legga un post isolato a miglioni di
kb di distanza.)
Cercherò di quotare... se scriverò ancora qui... tanto non è un dramma no?
Dai Anto' che te lo dico a fa'...

 Cercherò di quotare... se scriverò ancora qui... tanto non è un dramma no?
Ho già comprato le lamette che spero di non usare
Antonio

 testo, incollarlo, mettere il simbolo > davanti a tutte le righe
Scusa ma che programma usi? Con Outlook Express (e non sto dicendo che sia
l'unico software possibile) non muovo un dito: fa tutto lui, io al massimo
tolgo i pezzi che non mi interessano.
Alessandro

 > il fatto č che per quotare, devo copiare il

Aveva detto che scherzava...
almeno spero che sia veramente cosě
Antonio
P.S.
C'era il mitico Prospero Pirotti che lo faceva veramente !!!!!
Antonio

"Antonio Biso" <ch...@NOSPAMetruria.net> ha scritto nel messaggio 
news:HTBVd.59821$QG6.1...@twister2.libero.it...

Credo che il suo problema fosse la visualizzazione - invio in formato 
Html/rtf.
Lui vede i post "listati a lutto"
MAssimialino 

 > Anto
E cmq certo che scherzavo, no...