Result from Having count
Hello ppl,
I try to make query and see how many ids have more then one row.
few records is:
ids | val | some
a | 1 | x
a | 1 | v
b | 1 | x
b | 2 | c
I focus on ids and val with:
SELECT ids, val FROM table WHERE ids = 'a' GROUP BY ids, val HAVING
COUNT(ids) > 1;
and result is:
ids | val
a | 1
Well in this condition pgsql shold not return me positive result
because on documentation I read having count work on group clause,
and when I group these two records based on ids = 'a' they become to
one row and my condition is if the result after grouping is greeter then
1.
I use postgresql 9.1.4 x64
Any one can tell me what I miss ?
Regards,
Hristo Simeonov
Am 23.08.2012 09:52, schrieb Condor:
Hello ppl,
I try to make query and see how many ids have more then one row.
few records is:
ids | val | some
a | 1 | x
a | 1 | v
b | 1 | x
b | 2 | cI focus on ids and val with:
SELECT ids, val FROM table WHERE ids = 'a' GROUP BY ids, val HAVING
COUNT(ids) > 1;and result is:
ids | val
a | 1Well in this condition pgsql shold not return me positive result because
on documentation I read having count work on group clause,
and when I group these two records based on ids = 'a' they become to one
row and my condition is if the result after grouping is greeter then 1.I use postgresql 9.1.4 x64
Any one can tell me what I miss ?
Not sure I understand you correct, but maybe count() is working for you.
Maybe you would need some primary key for good values.
cheers,
Frank
On , Frank Lanitz wrote:
Am 23.08.2012 09:52, schrieb Condor:
Hello ppl,
I try to make query and see how many ids have more then one row.
few records is:
ids | val | some
a | 1 | x
a | 1 | v
b | 1 | x
b | 2 | cI focus on ids and val with:
SELECT ids, val FROM table WHERE ids = 'a' GROUP BY ids, val HAVING
COUNT(ids) > 1;and result is:
ids | val
a | 1Well in this condition pgsql shold not return me positive result
because
on documentation I read having count work on group clause,
and when I group these two records based on ids = 'a' they become to
one
row and my condition is if the result after grouping is greeter then
1.I use postgresql 9.1.4 x64
Any one can tell me what I miss ?
Not sure I understand you correct, but maybe count() is working for
you.
Maybe you would need some primary key for good values.cheers,
Frank
Sorry for my email,
after some thinking I understand my error and change query to:
SELECT COUNT(DISTINCT val), ids FROM table WHERE ids = 'a' GROUP BY ids
HAVING COUNT(DISTINCT val) > 1;
and it's work.
Thanks.
Hristo C.
Am 23.08.2012 10:45, schrieb Condor:
On , Frank Lanitz wrote:
Am 23.08.2012 09:52, schrieb Condor:
Hello ppl,
I try to make query and see how many ids have more then one row.
few records is:
ids | val | some
a | 1 | x
a | 1 | v
b | 1 | x
b | 2 | cI focus on ids and val with:
SELECT ids, val FROM table WHERE ids = 'a' GROUP BY ids, val HAVING
COUNT(ids) > 1;and result is:
ids | val
a | 1Well in this condition pgsql shold not return me positive result because
on documentation I read having count work on group clause,
and when I group these two records based on ids = 'a' they become to one
row and my condition is if the result after grouping is greeter then 1.I use postgresql 9.1.4 x64
Any one can tell me what I miss ?
Not sure I understand you correct, but maybe count() is working for you.
Maybe you would need some primary key for good values.cheers,
FrankSorry for my email,
after some thinking I understand my error and change query to:SELECT COUNT(DISTINCT val), ids FROM table WHERE ids = 'a' GROUP BY ids
HAVING COUNT(DISTINCT val) > 1;and it's work.
At least I was wrong in understanding your request. ;) But glad, you
found a solution.
Cheers,
Frank