求一个sql语句~~~~~~

zhangsuyunpk521 2012-04-23 03:31:29
地区 色系名 次数
北部地区 裸色系 1
东部地区 红色系 2
东部地区 粉色系 1
东部地区 裸色系 1
东部地区 紫色系 1
华中地区 粉色系 2
华中地区 红色系 1
现在我要得到每个地区次数最多的一个色系,求思想或语句~~~~~
结果
地区 色系名 次数
北部地区 裸色系 1
东部地区 红色系 2
华中地区 粉色系 2
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangsuyunpk521 2012-04-25
  • 打赏
  • 举报
回复
额,本来我找sql语句就是找一个思路,应为我要把sql转换成linq to sql语句,挺简单的sql语句是我想多了~~~~~
了解 2012-04-24
  • 打赏
  • 举报
回复
lz:你按地区分组,然后取max就行了。



恭喜楼主成功。
十三门徒 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
SQL code


CREATE TABLE TABLE5
(
Col1 INT,
Col2 VARCHAR(10),
Col3 VARCHAR(10)
)
GO
INSERT INTO TABLE5
SELECT 5, '华中地区', '红色系' UNION
SELECT 9, '华中地区', '粉色系' UNION
SELECT 10, '华……
[/Quote]

with t as
(select col2,col3,cs,row_number()over (partition by col2 order by cs desc) as row from (select col2,col3,count(col3) AS CS from table5
group by col2,col3
) a)
select col2,col3,cs from t where row=1

北部地区	裸色系	1
东部地区 红色系 2
华中地区 粉色系 2
暖暖2021 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
SQL code

SELECT ROW_NUMBER() OVER (PARTITION BY 地区 ORDER BY 次数 DESC) AS num FROM dbo.a
WHERE num=1
[/Quote]
看到你的回答,我以为进了Oracle区
暖暖2021 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
TestID 地区 色系
5 华中地区 红色系
9 华中地区 粉色系
10 华中地区 粉色系
6 东部地区 红色系
1 东部地区 红色系
2 东部地区 紫色系
3 东部地区 粉色系
4 北部地区 裸色系
1 东部地区 裸色系
额说错了,本来是这样的我已经Group bY 地区和色系一次
现在要得到根据地区和色系分组之后次数最多的地区和色系
[/Quote]
select 地区,色系,MAX(CS) FROM
(select 地区,色系,count(色系) AS CS from table1
group by 地区,色系
)group by 地区,色系
小天 2012-04-23
  • 打赏
  • 举报
回复
借用4楼的测试数据

CREATE TABLE TABLE5
(
Col1 INT,
Col2 VARCHAR(10),
Col3 VARCHAR(10)
)
GO
INSERT INTO TABLE5
SELECT 5, '华中地区', '红色系' UNION
SELECT 9, '华中地区', '粉色系' UNION
SELECT 10, '华中地区', '粉色系' UNION
SELECT 6, '东部地区', '红色系' UNION
SELECT 1, '东部地区', '红色系' UNION
SELECT 2, '东部地区', '紫色系' UNION
SELECT 3, '东部地区', '粉色系' UNION
SELECT 4, '北部地区', '裸色系' UNION
SELECT 1, '东部地区', '裸色系'

求总语句

SELECT MAX(tt.NUM) AS num2,tt.Col2, tt.Col3
FROM (SELECT sum(t.Col1) AS NUM,t.Col2, t.Col3 FROM TABLE5 t
GROUP BY t.Col2,t.Col3) tt
GROUP BY tt.Col2,tt.Col3

结果:

num2 Col2 Col3
----------- ---------- ----------
3 东部地区 粉色系
19 华中地区 粉色系
7 东部地区 红色系
5 华中地区 红色系
4 北部地区 裸色系
1 东部地区 裸色系
2 东部地区 紫色系
孤独加百列 2012-04-23
  • 打赏
  • 举报
回复

CREATE TABLE TABLE5
(
Col1 INT,
Col2 VARCHAR(10),
Col3 VARCHAR(10)
)
GO
INSERT INTO TABLE5
SELECT 5, '华中地区', '红色系' UNION
SELECT 9, '华中地区', '粉色系' UNION
SELECT 10, '华中地区', '粉色系' UNION
SELECT 6, '东部地区', '红色系' UNION
SELECT 1, '东部地区', '红色系' UNION
SELECT 2, '东部地区', '紫色系' UNION
SELECT 3, '东部地区', '粉色系' UNION
SELECT 4, '北部地区', '裸色系' UNION
SELECT 1, '东部地区', '裸色系'


WITH table1 as (SELECT Col2,Col3,COUNT(1) AS num
FROM Table5
GROUP BY Col2,Col3)

SELECT Col2,Col3,num
FROM TABLE1 AS B
WHERE num >= ALL(SELECT num from TABLE1 as A WHERE A.Col2 = B.col2)
迪迦凹凸曼 2012-04-23
  • 打赏
  • 举报
回复

SELECT ROW_NUMBER() OVER (PARTITION BY 地区 ORDER BY 次数 DESC) AS num FROM dbo.a
WHERE num=1
zhangsuyunpk521 2012-04-23
  • 打赏
  • 举报
回复
TestID 地区 色系
5 华中地区 红色系
9 华中地区 粉色系
10 华中地区 粉色系
6 东部地区 红色系
1 东部地区 红色系
2 东部地区 紫色系
3 东部地区 粉色系
4 北部地区 裸色系
1 东部地区 裸色系
额说错了,本来是这样的我已经Group bY 地区和色系一次
现在要得到根据地区和色系分组之后次数最多的地区和色系
学习中------- 2012-04-23
  • 打赏
  • 举报
回复

select 地区,色系名,max(次数) from tb group by 地区,色系名

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧