[Cascavel-pm] agrupamento e seleção em DBI
Rodrigo Fernandes
fernandesrp em yahoo.com
Quarta Fevereiro 6 12:24:12 PST 2008
----- Original Message ----
From: Luis Motta Campos <luismottacampos em yahoo.co.uk>
To: Cascavel Perl Mongers <cascavel-pm em pm.org>
Sent: Wednesday, February 6, 2008 5:27:20 PM
Subject: Re: [Cascavel-pm] agrupamento e seleção em DBI
...
>Teu código é grande demais e não tem nada a ver com o problema que você
>está tentando resolver.
Se tu achas, por mim tudo bem.
>1. Manda a definição das tabelas que você está usando;
Trata-se de uma única tabela. Se eu criar outras, poderia resolver o problema, mas me parece que isto seria uma solução pouco econômica. Então, estou tentando obter este SELECT diretamente da minha tabela inicial.
Acho que a melhor definição da tabela é:
SELECT *
FROM user
ORDER BY id_d, tficf_t, t
1, -1.96995, 'a'
1, -1.84598, 'e'
1, -1.75295, 'que'
...
30, 0.176634, 'Minerva'
>2. Reduz o teu problema *consistentemente* para a menor quantidade de
>código possível;
Tenho isso:
SELECT t, tficf_t, id_d
FROM user
WHERE t IN (
SELECT t
FROM user
GROUP BY t
HAVING COUNT(*) > 1
)
ORDER BY t, tficf_t desc
Que me dá uma linha se e somente se o t desta linha ocorre em pelo menos outra linha. Muito bem. Agora gostaria, também, de restringir o SELECT quanto aos valores id_d. Ou seja, gostaria de todo o resultado anteior apenas WHERE id_d IN (1,30) ou, dito de outra forma, WHERE (id_d = 1 OR id_d = 30). Na verdade, estou meio perdido.
Quando tentei
WHERE (id_d = 1 OR id_d = 30) AND t IN (
...
O Perl me deu o resultado da primeira cláusula AND o resultado da segunda, ou seja (A) AND (B). Mas eu queria algo como um INTERSECT entre a primeira e a segunda, ou seja, ((A) AND (B)). Bem, é isso.
> 3. Se você tem problemas com SQL, eu não quero ver o teu Perl.
Muito bem, a pudicícia agradece. :-)
>Se você ainda estiver brigando com o problema, eu estou disposto a
>ajudar. Mas preciso de mais informação.
Acredito que agora a informação seja necessária e suficiente. Se não for, é só pedir que manobro novamente o cavalo.
Obrigado,
Rodrigo Fernandes
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
Mais detalhes sobre a lista de discussão Cascavel-pm