Group By 多字段如何使用?
ID 名称 数量 类别
1羽毛球 10
2乒乓球 21
3篮球 03
4足球 05
5排球 100
6篮球 51
7足球 100
数据表如下 我想通过 名称来分组
Select 名称 From TB Group By 名称
这样 显示 效果正确 从夫的主球 和重复的 篮球 只显示一个
但是 如还像 同时 调用出来 数量 ID 类别
Select ID,名称,数量,类别 From TB Group By 名称,ID,数量,类别
这样就没有 分组效果了 全都显示出来了
我想问问 怎么可以 即调出其他字段 有可以只按 名称来分组?
[解决办法]
Select 名称,max(ID),max(数量),min(类别) From TB Group By 名称
[解决办法]
不知道你是不是有个行列转换的意思?
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篮球03
6篮球51
5排球100
2乒乓球21
1羽毛球10
4足球05
7足球 100