sql语句,选第一条数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句,选第一条数据相关的知识,希望对你有一定的参考价值。

有3种服务类型1招聘服务info_net 2广告服务info_ad 3培训服务info_train,表结构关键字段一致,都有
成交时间bargain_time 成交人bargain_man 公司编号company_id
需要查出在某个成交时间段内第一次成交(以前没有成交记录)的公司、成交人、成交类型、成交时间
1招聘服务info_net 2广告服务info_ad 3培训服务info_train是三个表,每个表的结果关键字段都有成交时间bargain_time 成交人bargain_man 公司编号company_id,需要查询出
某个成交时间段内第一次成交(以前没有成交记录)的公司、成交人、成交类型、成交时间

几个常用数据库的写法如下:


1、mssql 数据库

select top 1  * from table

2、Oracle数据库

select * from table  where rownum < 2

3、mysql数据库:

select * from table  limit 0, 1

(这里keyword limit startid,rownum是这样的:表示从startid + 1行开始,一共查询rownum条记录。

参考技术A SELECT top 1 company_id,bargain_man,bargain_type,bargain_time FROM bargain(数据库表) WHERE bargain_time<时间1 and bargain_time > 时间2追问

如果这个时间段内,这个公司有多条成交记录呢

追答

如果是三个表 用union 将它们联合查询,如果在这段时间内有多条记录,则根据bargain_time 排序即可,即 后面添加ORDER BY bargain_time ASC ,是按照成交时间正序排列, TOP 1 选取了其中的第一条,即成交时间最早的一条

参考技术B SELECT top 1 company_id,bargain_man,bargain_time
from (
select company_id,bargain_man,bargain_time FROM info_net
union all
select company_id,bargain_man,bargain_time FROM info_ad
union all
select company_id,bargain_man,bargain_time FROM info_train
)
WHERE bargain_time<时间1 and bargain_time > 时间2

SELECT count(*) FROM bargain(数据库表) WHERE bargain_time<时间1 and bargain_time > 时间2
参考技术C 不懂

hive如何去掉重复数据,显示第一条

参考技术A 去重没问题啊,distinct 就好了,显示第一条可以用row_number函数,不同版本hive的row_number有所不同,你自己查一下吧,row_number可以对同一个key从1开始编号的。

以上是关于sql语句,选第一条数据的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查询数据只要排序后的第一条记录(不用rownum=1),sql语句怎么写

怎样用Sql语句判断一张表中的两条数据相同

怎么用sql语句获取每一组的第一条记录(包括所有字段,不是单个字段)

oracle 查询数据只要排序后的第一条记录(不用rownum=1),sql语句怎么写

顺序执行多条sql,一条执行失败则所有都执行失败;例如第一条成功,第二条失败的话,第一条也失败!急!

SQL语句如何取前10条,10-30条记录?