首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Group By 多字段怎么使用

2012-09-28 
Group By 多字段如何使用?ID名称数量类别1羽毛球 102乒乓球 213篮球 034足球 055排球 1006篮球 517足球 10

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,数量,类别

这样就没有 分组效果了 全都显示出来了

我想问问 怎么可以 即调出其他字段 有可以只按 名称来分组?

[解决办法]

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篮球03
6篮球51
5排球100
2乒乓球21
1羽毛球10
4足球05
7足球 100

热点排行
Bad Request.