Обсуждение: sum from table 1, where from table 2
i have two tables, like so:
1.
create table public.vote (
sn integer primary key,
total integer,
city varchar(24)
);
sn | total | city
1 | 11 | new york
2 | 27 | los angeles
3 | 58 | san diego
2.
create table public.state (
sn integer primary key,
st varchar(2),
city varchar(24)
);
sn | st | city
1 | ny | new york
2 | ca | los angeles
3 | ca | san deigo
i am looking for a result, like so:
st | total
ca | 85
ny | 11
but this doesn't work:
select sum(vote.total),
state.st
from public.vote,
public.state
where vote.city = state.city
group by state.st
order by sum(vote.total) desc;
subquery? having?
thanks, jzs
it works (diego != deigo). thanks, jzs
On 02/23/2014 10:12 AM, John Smith wrote:
Testing Stefans theory about formatting of email.
test=> select version();
version
-----------------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.3.2 on i686-pc-linux-gnu, compiled by gcc (SUSE Linux)
4.7.1 20120723 [gcc-4_7-branch revision 189773], 32-bit
(1 row)
Yes I know I need to upgrade.
Well trying the above I get:
test=> select
sum(vote.total), st
from
public.vote,
public.state
where
vote.city = state.city
group by st
order by
sum(vote.total) desc;
sum | st
-----+----
85 | ca
11 | ny
(2 rows)
To get the column order you show I did:
test=>select st, sum(vote.total)
from
public.vote,
public.state
where
vote.city = state.city
group by st
order by
sum(vote.total) desc;
st | sum
----+-----
ca | 85
ny | 11
(2 rows)
So I am not sure what is not working on your end?
--
Adrian Klaver
adrian.klaver@aklaver.com