下面是农产品信息,共5张表:
市场 MARKET: MARKET_ID, TOWN_ID, MARKET_NAME
区县 TOWN: TOWN_ID, TOWN_NAME;
农产品 PRODUCE: PRODUCE_ID, PRODUCE_NAME
销售类型 SELL_TYPE: SELL_TYPE_ID, SELL_TYPE_NAME (1 零售价,2批发价)
价格表 PRICE 中数据:
PRICE_ID, MARKET_ID, PRODUCE_ID, SELL_TYPE_ID, MONEY 产品价格
1 1 1 1 10
2 1 2 2 3.5
3 2 3 1 6
我想查询 价格表 的 零售价平均数 和 批发价平均数,下面是我写的 错误sql语句:
select t.TOWN_NAME as '区县',
//实际不止p.SELL_TYPE_ID = '1'一个条件,还有m.MARKET_TYPE_ID = '1'等多个条件
case when p.SELL_TYPE_ID = '1' then avg(p.MONEY) end as '零售平均价',
case when p.SELL_TYPE_ID = '2' then avg(p.MONEY) end as '批发平均价'
from
PRICE p join MARKET m on p.MARKET_ID = m.MARKET_ID join PRODUCE pe on p.PRODUCE_ID = pe.PRODUCE_ID join TOWN t on t.TOWN_ID = m.TOWN_ID
where
p.PRODUCE_NAME = '菠菜'
group by
t.TOWN_ID;
下面是想要的查询效果: 区县 零售平均价 批发平均价
太原 3.5 3
太谷 2.5 2.2
临汾 2.9 2.4
.......
这个查询语句怎么写呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
懒得直接给你答案,一直觉得这样不好,说下思路吧,其实蛮基础的,其实你已经知道思路了,不知道为啥来发帖。(PS:没对乌龟壳研究,不知道有没有提供更简单的函数来实现) 1:首先对需要的数据做join,然后对TownID和SeleTypeID做group by 2:对1的结果集做纵变横输出 ######写了 三个子查询,join起来的