mysql练习

mysql group by的用法

学习创建表的结构数据

create table t_person
(
    article int,
    author  varchar(20),
    price   decimal(8, 2)
);
## 导入表的数据结构
insert into t_person
select 001, 'B', 3.99
union all
select 002, 'A', 10.99
union all
select 003, 'C', 1.99
union all
select 004, 'B', 19.95
union all
select 005, 'A', 6.96;

选出每个author的price最高的记录

# 选择出每个作者最高的记录
select tp.author, tp.price, tp.article
from t_person tp
where tp.price = (select max(p.price)
                  from t_person p
                  where tp.author = p.author);
##
select tp.author, tp.price, tp.article
from t_person tp,
     (select author, max(price) as price from t_person group by author) as t
where tp.author = t.author
  and tp.price = t.price;
## 方法二
select tp.author, tp.price, tp.article
from t_person tp inner join
     (select author, max(price) as price from t_person group by author) as t
on tp.author = t.author
  and tp.price = t.price;
##方法三
select t1.* from t_person t1 left join t_person t2
on t1.author = t2.author and t1.price < t2.price
where t2.author is null;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值