开发者社区> 问答> 正文

sql排序、统计的设计

想要实现某产品的销量统计,算法如下:
前两天的销量比较:如果前天比昨天高,则标记为正1;低,则标记为负1;
若持平,则标记为0. 并且按销量由高到低排序。
求高手一条sql语句解决(多条也行)。
已知条件:
表名:goods, 商品名:goodsname,交易时间:goodstime,销量:saleamount.
其中,商品有20种,记录估计1000条。
说明:只求sql,不用考虑其他sql语句以外的问题。

展开
收起
落地花开啦 2016-02-12 11:55:26 2184 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    `select goodsname, goodstime, saleamount,
    case when day_bef_yes_sal - yes_sal > 0 then 1 when day_bef_yes_sal - yes_sal = 0 then 0 else -1 end flag from
    (
    select goodsname, goodstime, saleamount,
    lead(saleamount) over(partition by goodsname order by goodstime desc) yes_sal,
    lead(saleamount, 2) over(partition by goodsname order by goodstime desc) day_bef_yes_sal
    from goods
    ) where goodstime = sysdate order by saleamount desc;`
    限定下条件排序就可以了

    2019-07-17 18:41:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载