麦粉社区
>
帖子详情

sqlsever2012怎么通过可视化查询,筛选出前十行.

高级开发 发表于 2021-7-2 09:47
发表于 2021-7-2 09:47:44
我现在有一张商品的明细表,总共有一百种商品。我现在有每日的商品销售数据,我现在需要通过可视化查询功能,挑选字段:日期、商品、销售量、排名。排名为新建计算字段表达式:row_number() over(order by  销售量 desc )。但是给我报错,You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(order by  T1951.`column19` desc ) as `F115732`  from `datamanager_datamaintenan' at line 1。
服务器使用的数据库是SQL sever2012,smartbi版本为v8.56
发表于 2021-7-2 10:12:35
纠正一下,使用的库是高速缓存库的表。
回复

使用道具 举报

发表于 2021-7-2 10:40:22
已解决,mysql无法使用row_number()函数
回复

使用道具 举报

发表于 2021-7-3 09:20:36
还有几种方式
1.你可以抽到高速缓存库的时候建个字段 在业务数据Sqlserver里面用这个row_number()写进去
2.smartbi本身带排序功能,数据集的时候那个销售量字段可以设置排序
回复

使用道具 举报

发表于 2021-7-8 18:43:57
不行,哎,抽到高速缓存库还是mysql语法,row_number()没法用。这个排名列就没法子实现,除非数据源用的sqlsever,但是相对的,如果只是展示前几行的话,用SQL sever就必须使用原生SQL,可视化查询会出各种各样的问题。
回复

使用道具 举报

发表于 2021-7-8 18:46:22
就是说这个需求,非技术人员是没法子处理。但这个场景(只展示排名前N个的数据,并附带排名)在自主分析中又非常常用。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

5回帖数 0关注人数 1558浏览人数
最后回复于:2021-7-8 18:46
快速回复 返回顶部 返回列表