ID 名称 数量 类别
1 羽毛球 1 0
2 乒乓球 2 1
3 篮球 0 3
4 足球 0 5
5 排球 10 0
6 篮球 5 1
7 足球 10 0
数据表如下 我想通过 名称来分组
Select 名称 From TB Group By 名称
这样 显示 效果正确 从夫的主球 和重复的 篮球 只显示一个
但是 如还像 同时 调用出来 数量 ID 类别
Select ID,名称,数量,类别 From TB Group By 名称,ID,数量,类别
这样就没有 分组效果了 全都显示出来了
我想问问 怎么可以 即调出其他字段 有可以只按 名称来分组?
------解决方案--------------------
- SQL code
Select 名称,max(ID),max(数量),min(类别) From TB Group By 名称
------解决方案--------------------
不知道你是不是有个行列转换的意思?
- SQL code
CREATE TABLE Ball( ProuctId int, Name varchar(20)) insert into Ball values (1,'篮球')insert into Ball values (2,'足球')insert into Ball values (3,'乒乓球')insert into Ball values (4,'羽毛球')Create Table BallInfo( Id int, ProcutId int, Amount int, Status bit)insert into BallInfo values (1, 1 ,1 ,1)insert into BallInfo values (2 ,1 ,5 ,0)insert into BallInfo values (3, 2 ,5, 0)insert into BallInfo values (4 ,2 ,1, 1)select C.Name,A.ProcutId, A.好的,B.坏的 from Ball C,(select ProcutId,SUM(Amount)over (partition by ProcutId,Status) as 好的 from ballInfo where status='1') A ,(select ProcutId,SUM(Amount)over (partition by ProcutId,Status) as 坏的 from BallInfo where Status='0') Bwhere A.ProcutId=B.ProcutId and C.ProuctId=B.ProcutIdName ProcutId 好的 坏的篮球 1 1 5足球 2 1 5
------解决方案--------------------
select id, name,sum(amount) over (partition by name) as amount , category from TestGroup
SELECT ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY amount,category),id,name,amount,category from TestGroup
这样的结果吗
3 篮球 0 3
6 篮球 5 1
5 排球 10 0
2 乒乓球 2 1
1 羽毛球 1 0
4 足球 0 5
7 足球 10 0