求个sql语句,具体如下

mysql数据库
产品价格表 price,
字段:id, productid, price, pricedate
表里存的是多个产品在不同时间的价格,
比如产品p1,
1 p1 203.00 2017-08-21
2 p1 251.00 2017-08-30

希望写出一个sql,可以按照报价日期降序排列,每个产品取7条数据
也就是每个产品取最新的七条价格

0

10个回答

select productid,price from (select productid,price,row_number() over(partition by productid order by price) rownumb from price) whre rownumb<=7

0

mysql数据库 进行操作!!!直接先查询全部的在排序,最后进行分页查询
SELECT * FROM tableName ORDER BY 排序的字段 LIMIT 分页起始页码,每页显示多少条
比如SELECT * FROM test ORDER BY pricedate LIMIT 0,7

0

显示什么字段在最前面写什么字段就可以

0

考虑两点:
1.前七条
2.每个产品---->说明产品不能重复的
select distanct(r.id ,r.productid,r.price,r.pricedate) from price r desc limit 0,6;

0

select * from (select productid,pricedate,row_number() over (partition by productid order by pricedate desc) num from price)t where t.num<=7

0

SELECT
productid,
price
FROM
(
SELECT
productid,
price,
row_number () over (
PARTITION BY productid
ORDER BY
price
) rownumb
FROM
price
) whre rownumb <= 7

0

重新回复一下:
select * from price a where instr(
(select GROUP_CONCAT(b.ids) from
(select SUBSTRING_INDEX(GROUP_CONCAT(p.id order by p.pricedate desc),',',7) as ids from price p group by p.productid) b)
, a.id)>0

0

SELECT * FROM price a

WHERE (SELECT count(*) FROM price b WHERE b.productid=a.productid AND b.id>a.id )<7

ORDER BY pricedate desc

0

这种也可以
select a.* from price a,
(select s.productid,SUBSTRING_INDEX(GROUP_CONCAT(p.id order by p.pricedate desc),',',7) as ids from price p group by p.productid) b
where a.productid = b.productid and instr(b.ids, a.id)>0

0
cool0532
Baymax0532 SELECT * FROM w_price wp WHERE 3 > ( SELECT COUNT(*) FROM w_price WHERE productid = wp.productid AND pricedate > wp.pricedate ) ORDER BY wp.productid ASC, wp.pricedate DESC
一年多之前 回复

SELECT
*
FROM
price wp
WHERE
3 > (
SELECT
COUNT(*)
FROM
price
WHERE
productid = wp.productid
AND
pricedate > wp.pricedate
)
ORDER BY
wp.productid ASC,
wp.pricedate DESC

通过查资料和同事讨论,商量出了这个sql,后来又查到了一个,不知道有没有大神可以一块讨论讨论

SELECT
a.productid, a.pricedate

FROM
w_price a
LEFT JOIN
w_price b
ON
a.productid = b.productid
AND
a.pricedate <= b.pricedate
GROUP BY
a.productid, a.pricedate
HAVING
COUNT(b.pricedate) <= 7

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Oralce数据库SQL(结构化查询语句)详细归类以及使用方法举例(针对表)
1)DDL(Data Definition Language)数据定义语言a.create创建表:create table tname(colName1 Datatype,coluName2 Datatype,……);说明:此关键字不光可以用来创建表,还可以用来操作,序列(sequence)、视图(view)、索引(index)b.alter修改表结构:增加表的字段:alter table tNa...
数据库 用sql语句创建表
用sql语句创建表(基本语句)  以下代码本人都在Microsoft Sql Sever 2010 中成功执行。 USE E_Market   --当前操作的数据库 GO      --批处理 CREATE TABLE CommoditySort    --商品类别表 ( SortID int IDENTITY(1,1) NOT NULL, --类别编号,列名称sortid
第3章 关系数据库标准语言SQL 练习
第3章 关系数据库标准语言SQL 练习                     1.SQL语言是( )的语言,容易学习 。      A. 过程化      B.非过程化      C.格式化      D.导航式                              2.在视图上不能完成的操作是(
sql语句总结具体介绍优化
sql语句总结具体介绍优化sql语句总结具体介绍优化sql语句总结具体介绍优化
sql函数平均值 总数 最小值 最大值 总和 标准差
sql函数平均值 总数 最小值 最大值 总和 标准差
求如下sql语句
数据表1:rn类型,名称,数量,金额, 时间rna x1 5 700 2007-01-01rna x2 10 1400 2007-01-02rnb x3 6 700 2007-01-02rnc x4 9 600 2007-01-03rn..........rnrn表2:rn金额, 时间rn500 2007-01-01rn400 2007-01-02rn300 2007-01-02rn400 2007-01-03rn.............rnrnrn要求生成表3rn日期, a数量,a金额,b数,b金,c数,c金,本日合计,本日收款,本日结算rn2007-01-01 5 700 0 0 0 0 700 500 200rn2007-01-02 10 1400 6 700 0 0 2100 700 1400rn2007-01-03 0 0 0 0 9 600 600 400 200rn2007-01-04 0 0 0 0 0 0 0 0 0rn........
求SQL语句
求SQL语句,请看附件
PL/SQL:FOR循环:打印2-200之间的素数
PL/SQL:FOR循环:打印2-200之间的素数
sql求解两个时间差
DATEDIFF 函数 [日期和时间] 功能 返回两个日期之间的间隔。 语法 DATEDIFF ( date-part, date-expression-1, date-expression-2 ) date-part : year | quarter | month | week | day | hour | minute | second | millisecond 参数 date-p
SQL Server经典面试题之一
 SQL Server经典面试题之一朱二(2006.12 转载请注明作者)问题说明:有三个表,项目表、合同表、付款表一个项目可能会有签署多个合同,每个合同会分几次付款。--下面是建立表的语句create table 项目(项目编号 int,项目名称 varchar(50))insert 项目 select 1, 项目1union select 2, 项目2union select
记一个做报表的sql语句
现数据库有这么一张表,如图:需要汇总成,如图2:即,按个人来汇总提交的工序数量,客户需求:每一个订单导出这样一张报表!        自己分析:每个订单的所绑定的工序是不相同的,也就是从订单绑定工序表(另外的表)中查到这个订单号所绑定的所有工序集合,然后把这个工序集合作为报表的横坐标表头,既是横坐标表头是动态的。这就需要对sql语句的熟练掌握了才能写出这么溜的sql语句来,嘿嘿,恰巧我sql语句还...
Oracle中使sql求两个日期之间的所有日期
比如,两个日期是2018-08-27和2018-08-30,要求27,28, 29,30这四天的日期,我们可以采用下面的SQL来求得: --oracle 求两个日期之间的所有日期 SELECT TO_CHAR((TO_DATE(KSRQ, 'yyyy-MM-dd') + (ROWNUM - 1)), 'yyyy-MM-dd') DT FROM DUAL CONNECT BY ROWNUM...
一条SQL语句求全年平均值
一年有8760个小时!(才这么点。。。)
sql求某列的平均值,详细如下:
select avg(col) from [Table] Where candition.col 的数据类型:int,money,float
SQL语句group by 的求和sum
 SQL语句的针对GROUP BY 分组求和   方法一: SELECT factors_value,SUM(pv) AS sum_pv,SUM(pv)/ (SELECT SUM(sc.sum_pv) FROM ( SELECT factors_value,SUM(pv) AS sum_pv FROM `stats_come` WHERE web_id='67679008' AND ...
【Oracle】PL/SQL实现打印1-100中的素数
--方法一 declare     i number(4);--存储1-100中所有的数(用作被除数)     j number(4) := 1;--存储除数     z number(4) := 0--存储被整除的次数; begin     for i in 1..100 loop         while j             if mod(i,j) = 0 then
SQL service基础(七)T-SQL程序设计,实现n位求和
实验目标: 掌握T-SQL语言及程序设计的方法 实验结果: 一、T-SQL程序设计逻辑   1.完成计算1~100之间所有能被3整除的数据的个数和总和后,完成下列问题: ① 求1+2+3+...+100的总和。输出结果如下所示,将相应的T-SQL描述。(注意去除多作的空白格)   ② 若求1+2+3+...n的总和,其中n为一局部变量,程序又将做何修改,将相应的T-SQL描述。 ...
[SQL] 计算N个月前,N个月后的方法
Agenda #1. 计算N个月前的日期 #2. 计算N个月后的日期 #3. 月末最后一天的情况(计算从日数多的月到日数较少的月) #4. 月末最后一天的情况(计算从日数少的月到日数较多的月) |计算N个月前的日期 如果要计算N个月前的日期。使用DATEADD函数,并且第二个参数N要指定为负数。 --指定N为负数 DATEADD(month, N,
sql如何计算两个日期间的工作日,剔除节假日
创建标量值函数,这个函数会返回一个日期值, 然后就可以在存储过程中调用了, 不过调用的方式有所不同, 如果不加dbo,那sql会不认识这个函数, 即 SELECT   [dbo].[f_workdateadd]('2011-8-29',1,3) 定义节假日表 CREA
Ora9iSQLRef.chm
Ora9i的SQL语句参考文档,描述SQL语句的具体使用
PLSQL中的循环语句
PLSQL中的循环语句循环语句可以控制程序多次重复地执行某一组语句。PL/SQL中常用的循环语句有3种,在此基础上还可以演变出许多嵌套循环。1. loop···end loop 循环基本语法格式 [<<label_name>>] /*标签名*/ LOOP statements; exit when condition; END LOOP [label_name]
SQL 语句中group by 和having 的简单使用
在使用SQL语句中常用的查询中有关于分组的使用方法:group by 主要是和统计相关的查询 编号 姓名 性别 1 张三 男 2 李四 女 3 王五 女 4 赵六 女 select 性别, count(性别) from student group by 性别; 结果: 性别 count(...
第3章 SQL 习题 - 3.3
3.3 使用大学模式,用SQL写出如下插入、删除和更新语句。 a.给Comp. Sci.系的每位教师涨10%工资。 先找出现Comp. Sci. 系的每位教师的工资情况。 现在执行更新,并检索出新的工资情况: b.删除所有未开设过(即没有出现在section关系中)的课程。 为了验证结果,先找出section中所有的课程, 再找出未开设过的课程: 确实&quot;BIO-399...
SQL中的内外连接、排序和求平均值的语句
外连接:select  字段名称  from  表名1 left / right  jion  表名2  on  表名1.字段名1 = 表名2. 属性名2; 内连接:select  字段名称  from  表名1 inner  jion  表名2  on  表名1.字段名1 = 表名2. 属性名2;                                      order  by 排
操作系统第1次实验报告
【问题】求1000000个浮点数(精确到小数点后4位)的平均值(和,最大值,最小值),具体的问题描述流程图如下图图1所示。
数据库表,3个字段,姓名,薪水,部门,用一条sql语句求每个部门薪水最高的人姓名
select t1.姓名 from 表 t1, (select max(薪水) 薪水,部门 from 表 group by 部门) t2 where t1.部门=t2.部门 and t1.薪水 = t2.薪水   create table t1 (   NAME VARCHAR2(10),   salary  VARCHAR2(10),   dept  VARCHAR2(10)
SQL怎样求一行结果的和
id  数学    英语   物理 1    100     90      110 2     90     80         60 使用Sql 求出 第一行的几门课的综合 select (数学+英语+物理) from table ;
关于sql 语句求平均值和总和
已知有两张表 部门表department:部门编号 dept_id 、部门名称 dept_name 员工表employee:员工编号 emp_id、员工姓名 emp_name、 部门编号 dept_id 、工资emp_wage 1)求各部门的平均工资 select d.dept_name ,round(avg(nvl(e.emp_wage,0)),2) sal from employee
sql语句交集情况的查询技巧
sql语句交集情况的查询技巧 开发过程中涉及到了查询字符串交集的情况,不会写这样的sql,上网一搜,还真有例子。现在分享给大家。 也许某一天你就会用到,你懂的。 交集 表的字段就是 name  no     a     2,9    b     8,10   字符串是str="0,1,2,3,4" 接下来就是查 no字段里跟str里有交集的记录 查询
SQL SERVER 求阶乘之和
求阶乘之和:CREATE PROCEDURE proc_jc @num INT AS BEGIN DECLARE @cj INT,@sum INT,@i INT; SELECT @cj=1,@sum=0,@i=1; WHILE @i<=@num BEGIN SET @cj=@cj*@i; SET @sum=@sum+@cj; SET @i
#SQL中进行最大公约数和最小公倍数的sql
create function GetGys(@num1 int,@num2 int) returns int --返回值 as begin declare @times int  --计数器 declare @min int    --存储两个数的较小者 declare @result int  --保存结果 if(@num1>=@num2) set @min=@num2 el
SQL高级 第五章 我的租房网
use HOUSE select * from hos_house --房间信息表 select * from hos_district --区县表 select * from hos_street --街道表 select * from hos_type --房间类型表 --1.内容扩充:临时表 --如果表名前面有#,那么创建的表是临时表,位于tempdb数据库下 --的临时表
sql 工资合计计算
select @sh=sum(convert(float,k)) from gz where a='上海' select @hz=sum(convert(float,k)) from gz where a='杭州' select @kq=sum(convert(float,k)) from gz where a='康橋' select @ks=sum(convert(float,k)) from...
数据库应用第四章:表数据操作
一.删除表“employ”中的“employdate”列所使用的语句是什么? ALTER TABLE employ( DROP employdate) 二.在SQL Server 2008中对数据使用SSMS图形化界面进行修改,与使用T-SQL修改数据,两种方法相比较,哪一种功能更强大、更为灵活?试举例说明。 各有优缺点,总体说来使用T-SQL修改数据功能更强大...
求如下一代SQL语句。
有如下表:rnID content rn1 rn5 rn6 rn7 rn8 Bitmaprn9 rn10 rn11 rn15 rn16 rn17 rn18 Bitmaprn19 rn20 rn21 href="http://www.xxx.com/xxx/=2592292"rn22 target="_blank">rn28 rn29 rn30 rn31 Bitmaprn32 rn33 rn34 href="http://www.xxx.com/xxx/=2592296"rn35 target="_blank">rn41 rn42 rn43 rn44 Bitmaprn45 rn46 rn47 href="http://www.xxx.com/xxx/=2592298"rn48 target="_blank">; ; ; ,将所有或者的记录之前的第四条记录同时contest字段中含有“href="http://www.xxx.com/xxx”字符串的记录找出来,比如ID为29的那一条记录中contest字段中的内容是,向上数4条,即ID为25的那一条记录,因为包含“href="http://www.xxx.com/”字符,所以ID为25的记录符合要求,被SELECT出来,同理ID为16的那条内容为“”的记录之上的第四条记录即ID为12的那条记录也符合这种情况。rn如何将所以符合这种情况的记录全SELECT出来?rn
SQL语句计算男女各占总人数比例
select   count(*) as 人口总数, sum(case when sex=0 then 1 else 0 end) 男人数, sum(case when sex=0 then 1 else 0 end)*1.0/count(*)男所占比例, sum(case when sex=1 then 1 else 0 end) 女人数, sum(case whe
求一条SQL语句,如下
这样两个表,rnINSERT INTO MAT1(T_CODE,T_QTY)rnSELECT '001',20rnUNION SELECT '002',12rnUNION SELECT '003',24rnUNION SELECT '004',40rnrnINSERT INTO MAT2(T_CODE ,T_QTY)rnSELECT '001',10rnUNION SELECT '004',20rnUNION SELECT '005',40rnUNION SELECT '006',21rnrnrn我要的结果是:rnT_CODE T_QTYrn001 30rn002 12rn003 24rn004 60rn005 40rn006 21rn
求如下SQL语句的写法
DB如下结构rnrn-----------------------------------rnID NAME TELrn___________________________________rn1 abc 123456rn2 bbc 234534rn3 abc 234563rn4 bbc 234534rnrn我想把1,和4选择出来,就是把 NAME=NAME and TEL=TEL 的情况SELECT出来rnrn谢谢
求如下问题的sql语句
1 如何把一个字段的字符串连起来? 不能用游标rn 比如rn ID Contentrn 1 'boy'rn 2 'girl'rn 3 'cat'rn想得到结果 'boygirlcat'rnrn3rn有一表 rn Month line Amont rn 1 'A' 100rn 1 'A' 300rn 1 'c' 100rn 2 'd' 200rn 2 'A' 200rn如何得到结果rn Month line Amount percentage1 percentage2rn 1 'A' 400 0.8 0.4rn 1 'c' 300 0.2 0.1 rn 2 'A' 200 0.5 0.25rn 2 'd' 200 0.5 0.25rnAmount容易得到,但percentage1 和 percentage2如何在不能用临时表的情况下完成?rn
求一条SQL语句。如下
求一条SQL语句。如下rn表 arnid 主键rn部门 idrn员工姓名rn学历rnrn表 brnid 主键rn部门名rnrn表 crn学历 idrn学历名rnrn求表rn 部门a 部门b 部门c 部门drn初中 x x x x rn高中 x x x xrn大专 x x x xrn大学 x x x xrnrn统计 人数
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 深度学习ufldl教程教程如下 云计算的具体课程