有没大神帮忙解决一个SQL去重+查询+排序+取最小值的问题
表A三个列 ID,Type,Data,三个列都得获取。
以Type去重并获取最小的Data,可是查询要带上ID。
group by带上 ID的话做不到去重,可是不带ID的话select ID 就报错。这里怎么写?
这是第一步。
然后根据Type的值(可能是1、2、3或者2、1、3什么的不规则的顺序),由上往下只查询一条数据。
这是第二步。
最好两步一个SQL语句,不行的话两个SQL语句也行。
以Type去重并获取最小的Data,可是查询要带上ID。
group by带上 ID的话做不到去重,可是不带ID的话select ID 就报错。这里怎么写?
这是第一步。
然后根据Type的值(可能是1、2、3或者2、1、3什么的不规则的顺序),由上往下只查询一条数据。
这是第二步。
最好两步一个SQL语句,不行的话两个SQL语句也行。
...全文
相关推荐
SQL去重 清除冗余数据
SQL去重,顾名思义,是清除查询结果或者是数据库里不必要的相对某个字段的冗余数据.
mysql去重查询的三种方法
mysql去重查询的三种方法:文章通过本人的真实测试,以图文并茂的方式实现了mysql数据库去重查询的三种方式。包含mysql常用的使用distinct剔重、使用group by提重、使用开窗函数row_number()或类row_number()方法。详细内容请查看文档。
浅谈sql数据库去重
关于sql去重,我简单谈一下自己的理解和经验,如果各位有建议或有不明白的欢迎多多指出。
SQL order by ID desc/asc加一个排序的字段解决查询慢问题
解决方法就是在order by ID desc再加一个排序的字段,这样子可能会把速度提高很多。再加止排序的字段因查询而异了 如表 代码如下: CREATE TABLE [dbo].[CMPP_SendCentre] ( [id] [int] IDENTITY (1, 1) NOT NULL , [SendType] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [SendDate] [datetime] NOT NULL , [Port] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NUL
sql模糊查询并按匹配度排序
select Top 20 * from [dbo].[core_product_main] where (1=1) and 字段名 like '%字段值%' order by abs(len(字段名)-len('字段值'))


疑难问题

