Re: [SQL] union with count?
am Wed, dem 28.03.2007, um 11:04:29 -0300 mailte Gerardo Herzig folgendes: Hi dudes, i have the following question i have 2 tables with the same format, and i want to know if is there a possibility of using some sort of count(*) for achieving this result: select a from table1 where (condition) union select a from table2 where (condition), count(a) group by a The idea is having how many times (condition) is true for both tables. Im not shure im explaining myself clearly, my english is not the best (as you can see ;) You can use a subselect, a simple example: test=# select *, count(1) from (select 1 union select 2 union select 3) foo group by 1; ?column? | count --+--- 1 | 1 2 | 1 3 | 1 (3 rows) Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: - Header) GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net ---(end of broadcast)--- TIP 4: Have you searched our list archives? http://archives.postgresql.org
Re: [SQL] union with count?
Thanks! But now i have another problem related with count(): select page_id, word, word_position, count(page_id) from (select * from search_word('word1', 'table1') union search_word('word2', 'table2')) foo group by page_id; and gives me foo.word must appear in GROUP clause or be used in an aggregate function And i want to group by page_id only, because that is what i need to count. Tips here? Thanks again man. Gerardo am Wed, dem 28.03.2007, um 11:04:29 -0300 mailte Gerardo Herzig folgendes: Hi dudes, i have the following question i have 2 tables with the same format, and i want to know if is there a possibility of using some sort of count(*) for achieving this result: select a from table1 where (condition) union select a from table2 where (condition), count(a) group by a The idea is having how many times (condition) is true for both tables. Im not shure im explaining myself clearly, my english is not the best (as you can see ;) You can use a subselect, a simple example: test=# select *, count(1) from (select 1 union select 2 union select 3) foo group by 1; ?column? | count --+--- 1 | 1 2 | 1 3 | 1 (3 rows) Andreas ---(end of broadcast)--- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
Re: [SQL] union with count?
Gerardo Herzig [EMAIL PROTECTED] schrieb: Thanks! But now i have another problem related with count(): select page_id, word, word_position, count(page_id) from (select * from search_word('word1', 'table1') union search_word('word2', 'table2')) foo group by page_id; and gives me foo.word must appear in GROUP clause or be used in an aggregate function And i want to group by page_id only, because that is what i need to count. Tips here? You can't aggregate without grouping the not-aggregated columns. Expand your 'group by' with word and word_position. Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) If I was god, I would recompile penguin with --enable-fly.(unknow) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889° ---(end of broadcast)--- TIP 6: explain analyze is your friend