SQL数据查询....

阿狸Ahri 2014-10-27 01:05:08
需求:a表 name sex index ;b表 只有一个字段 num (索引表1-无穷大)
将b表跟a表 左连接后...新表有多条同样的字段,现在想去掉重复的字段...并且计算出重复的条数,当做表字段返回
如:
num name sex i ndex
1 NULL NULL NULL
2 NULL NULL NULL
3 小明 男 3
3 小明 男 3
3 小明 男 3
4 小红 女 4

根据(NUM)列去掉重复后 变成
num name sex i ndex COUNT
1 NULL NULL NULL 1
2 NULL NULL NULL 1
3 小明 男 3 3
4 小红 女 4 1
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2014-10-27
  • 打赏
  • 举报
回复
引用 2 楼 edfdfg 的回复:
[quote=引用 1 楼 ky_min 的回复:]
SELECT
	b.num
	,c.[name]
	,c.sex
	,c.[index]
	,ISNULL(c.[COUNT],1)[COUNT]
FROM
	b
	LEFT JOIN
	(SELECT [name],sex,[index],COUNT(1)[COUNT]FROM a GROUP BY[name],sex,[index])
	c ON b.num=c.[index]
试下
好吧 我没怎么读懂。 后面我是这样弄的,先查出的数据存零时表t1里,然后根据Num计算个数,存到t2去,然后t1左联t2.... 看起来貌似没啥问题...不知道效率怎么样[/quote]没必要存临时表, 因为你要统计个数,聚合是免不了 速度应该不会太慢 然后,数字表 b 的数据是按顺序的吗? 还是会像上面那样,3有好几个
Tiger_Zhao 2014-10-27
  • 打赏
  • 举报
回复
原始数据都不给,差评!
-- 猜你的数据是这样的
WITH a(name,sex,[index]) AS (
SELECT '小明','男', 3 UNION ALL
SELECT '小红','女', 4
)
,b (num) AS (
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 3 UNION ALL
SELECT 3 UNION ALL
SELECT 4
)
-- 这是你原先的查询
-- SELECT * FROM b LEFT JOIN a ON b.num = a.[index]

-- 先统计数量再联合查询最方便了
SELECT c.num, a.*, c.[count]
FROM (
SELECT num,
COUNT(*) AS [count]
FROM b
GROUP BY num
) c
LEFT JOIN a
ON c.num = a.[index]

        num name sex        index       count
----------- ---- ---- ----------- -----------
1 NULL NULL NULL 1
2 NULL NULL NULL 1
3 小明 男 3 3
4 小红 女 4 1
阿狸Ahri 2014-10-27
  • 打赏
  • 举报
回复
引用 1 楼 ky_min 的回复:
SELECT
	b.num
	,c.[name]
	,c.sex
	,c.[index]
	,ISNULL(c.[COUNT],1)[COUNT]
FROM
	b
	LEFT JOIN
	(SELECT [name],sex,[index],COUNT(1)[COUNT]FROM a GROUP BY[name],sex,[index])
	c ON b.num=c.[index]
试下
好吧 我没怎么读懂。 后面我是这样弄的,先查出的数据存零时表t1里,然后根据Num计算个数,存到t2去,然后t1左联t2.... 看起来貌似没啥问题...不知道效率怎么样
还在加载中灬 2014-10-27
  • 打赏
  • 举报
回复
SELECT
	b.num
	,c.[name]
	,c.sex
	,c.[index]
	,ISNULL(c.[COUNT],1)[COUNT]
FROM
	b
	LEFT JOIN
	(SELECT [name],sex,[index],COUNT(1)[COUNT]FROM a GROUP BY[name],sex,[index])
	c ON b.num=c.[index]
试下

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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