码迷,mamicode.com
首页 > 数据库 > 详细

mysql having

时间:2016-01-07 18:40:11      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:mysql

having

查询差价在200以上的列

select goods_id,(market_price - shop_price ) as chajia from goods having chajia>200;


查询挤压的总货款

select sum(goods_number*shop_price) from goods;


查询每个栏目下的积压货款

mysql> select cat_id ,sum(goods_number*shop_price) from goods group by cat_id;

+--------+------------------------------+

| cat_id | sum(goods_number*shop_price) |

+--------+------------------------------+

|      2 |                         0.00 | 

|      3 |                    356235.00 | 

|      4 |                      9891.00 | 

|      5 |                     29600.00 | 

|      8 |                      4618.00 | 

|     11 |                       790.00 | 

|     13 |                       134.00 | 

|     14 |                       162.00 | 

|     15 |                       190.00 | 

+--------+------------------------------+


查询积压货款大于20000的栏目

mysql> select cat_id ,(sum(goods_number*shop_price)) as dae from goods group by cat_id having dae > 20000;

+--------+-----------+

| cat_id | dae       |

+--------+-----------+

|      3 | 356235.00 | 

|      5 |  29600.00 | 

+--------+-----------+



insert into result

values

(‘张三‘,‘数学‘,90),

(‘张三‘,‘语文‘,50),

(‘张三‘,‘地理‘,40),

(‘李四‘,‘语文‘,55),

(‘李四‘,‘政治‘,45),

(‘王五‘,‘政治‘,30);



求出两门以上不及格人的平均值


逆向逻辑

select name,avg(score) from result group by name having (sum(score<60))>=2 ;

两者等同

select name,avg(score),sum(score<60) as guake from result group by name having guake>=2;


正向逻辑 (用到了子查询)

select name,avg(score)

from result

where name in ( 

select name from ( 

(select name ,count(*) as guake from result where score<60 group by name having guake>=2) as tmp 

)

)

group by name;


本文出自 “代码易” 博客,请务必保留此出处http://codeyi.blog.51cto.com/11082384/1732461

mysql having

标签:mysql

原文地址:http://codeyi.blog.51cto.com/11082384/1732461

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!