现有一表,里面包含100名顾客多次的购买记录,现需要提取每位顾客最后一次购买记录的详情
表格字段如下:
顾客编号 顾客姓名 顾客住址 购买水量 购买日期
现需要生成包含 顾客编号 顾客姓名 顾客住址 购买水量 购买日期 等字段的每位顾客最后的购买记录量
请提供一下SQL语句,谢谢大家。
------解决方案--------------------
select 购买数量 from tb t where not exists(select 1 from tb where 顾客姓名=t.顾客姓名 and 购买日期>t. 购买日期)
------解决方案--------------------
select 购买数量 from tb t where 购买日期=(select max(购买日期) from tb where 顾客姓名=t.顾客姓名)
------解决方案--------------------
-- 方法1
select 顾客编号,顾客姓名,顾客住址,购买水量,购买日期
from
(select row_number() over(partition by 顾客编号 order by 购买日期 desc) 'rn',*
from [表名]) t
where rn=1
-- 方法2
select a.顾客编号,a.顾客姓名,a.顾客住址,a.购买水量,a.购买日期
from [表名] a
inner join
(select 顾客编号,max(购买日期) '购买日期'
from [表名]
group by 顾客编号) b on a.顾客编号=b.顾客编号 and a.购买日期=b.购买日期