今天朋友给发了一个有意思的SQL格式整理问题~

伴老思源 2012-03-15 03:04:25
/*
Columns1 Columns2
A1 B1
A1 B1
A1 B2
A2 B2
A2 B3
A3 B1
*/
-- Expect result data:
/*
Columns1 Columns2
A1 B1
A2 B2
A3 B1
*/
...全文
404 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
伴老思源 2012-03-20
  • 打赏
  • 举报
回复
权当散分了~


chosenboa 2012-03-17
  • 打赏
  • 举报
回复
不太懂 。。。。 哎
伴老思源 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sunylf 的回复:]

問清他的需求.有岐意.
[/Quote]

呵,说是让自己仔细想想,考虑各种可能~

sunylf 2012-03-16
  • 打赏
  • 举报
回复
問清他的需求.有岐意.
mugua604 2012-03-16
  • 打赏
  • 举报
回复

CREATE TABLE #TEMP(ID VARCHAR(2),ID2 VARCHAR(2))
INSERT INTO #TEMP
SELECT 'A1','B1'
UNION ALL
SELECT 'A1','B1'
UNION ALL
SELECT 'A1','B2'
UNION ALL
SELECT 'A2','B2'
UNION ALL
SELECT 'A2','B3'
UNION ALL
SELECT 'A3','B1'


SELECT DISTINCT * FROM #TEMP T0 WHERE NOT EXISTS(SELECT 1 FROM #TEMP WHERE T0.ID=ID AND T0.ID2>ID2)

/*
ID ID2
A1 B1
A2 B2
A3 B1
*/
伴老思源 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dawugui 的回复:]
--如果仅仅按照你给的数据,分组取最小即可.
select Columns1 ,min(Columns2) Columns2 from tb group by Columns1
[/Quote]

话说,当时我给他回的也是这么写的,丫说不对,让再想想~~~~~~~~我了个去&!#$%^
dawugui 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 abandonship 的回复:]
/*
Columns1 Columns2
A1 B1
A1 B1
A1 B2
A2 B2
A2 B3
A3 B1
*/
-- Expect result data:
/*
Columns1 Columns2
A1 B1
A2 B2
A3 B1
*/
[/Quote]
--如果仅仅按照你给的数据,分组取最小即可.
select Columns1 ,min(Columns2) Columns2 from tb group by Columns1

--或者是取第一个吗?
select t.* from tb t where Columns2 = (select top 1 Columns2 from tb where Columns1 = t.Columns1)
EnForGrass 2012-03-15
  • 打赏
  • 举报
回复

select Columns1,min(Columns2) from tb group by Columns1
usbusb2007 2012-03-15
  • 打赏
  • 举报
回复
select * from (
select Columns1, Columns2,row_number() over (partition by Columns1 order by Columns2) cnt from table )
where cnt =1

haitao 2012-03-15
  • 打赏
  • 举报
回复
可能给的数据、结果不够典型
否则3楼的sql就行了
  • 打赏
  • 举报
回复
select Columns1 ,min(Columns2) from tb group by Columns1
select * from tb t where columns2=(select min(columns2) from tb where columns=t.columns)

两个都可以,那假如最小的col2有重复的怎么处理?是全部显示出来还是只取一个?
--小F-- 2012-03-15
  • 打赏
  • 举报
回复
select * from tb t where columns2=(select min(columns2) from tb where columns=t.columns)
黄_瓜 2012-03-15
  • 打赏
  • 举报
回复
select Columns1 ,min(Columns2) from tb group by Columns1


你这朋友还真有意思
【变分多谐波对偶模式追踪】从噪声信号中提取重复瞬态分量的方法(Matlab代码实现)内容概要:本文介绍了“变分多谐波对偶模式追踪”这一信号处理方法,旨在从含有噪声的信号中有效提取重复出现的瞬态成分。该方法结合了变分模态分解与多谐波分析的优势,通过构建对偶模式追踪模型,实现了对微弱瞬态特征的精准分离与增强,特别适用于机械故障诊断、生物医学信号处理等领域。文中详细阐述了算法原理、数学模型构建及其实现步骤,并提供了基于Matlab的代码实现,便于读者复现与应用。; 适合人群:具备一定信号处理基础,从事机械故障诊断、生物医学工程或相关领域的研究生及科研人员。; 使用场景及目标:①从强噪声背景中提取机械设备的周期性冲击信号以进行故障预警;②分析生物医学信号中的重复生理事件,如心电图或脑电图中的特定波形;③为需要高精度瞬态特征提取的研究提供可靠的算法支持与实现范例。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了算法的具体编程细节,还强调了理论与实践的紧密结合。学习者应在理解算法原理的基础上,动手运行并调试所提供的代码,通过改变参数观察结果变化,从而深入掌握该方法的应用技巧与优化策略。

34,876

社区成员

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

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