SQL数据集代码中不能有group by吗?

如题,复制过来的,测试了一下,包含了group by的 总是报错,我在SQL 软件中执行是没问题:please check!除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。

用户86495912 发布于 2020-6-16 15:11
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
zsh331Lv8专家互助
发布于2020-12-22 21:32

楼主:这个sql语法一二句话说不清楚,但能确定的是order by放的位置不对;详情请参考文档介绍;

================

【除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询】--

https://www.cnblogs.com/firstdream/p/5654617.html



最佳回答
0
ScyalcireLv7中级互助
发布于2020-6-16 15:15

你在select 与字段之间加上 top 100 percent 试试

比如 select top 100 percent * from dual

  • 誓言无悔 誓言无悔 top的写法针对SQLserver,mysql用的是limit
    2020-06-16 15:56 
  • 用户86495912 用户86495912(提问者) 测试了一下,有一个好像可以了,请赐教,谢谢,不懂为何。
    2020-06-16 16:55 
  • 用户86495912 用户86495912(提问者) 刚上手,有些不太懂,在SQL中能执行,在这执行不了,比如;with a as (.......) select .......with前面不加;语法错误,加了;又说;错误
    2020-06-16 17:39 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-6-16 15:15

看下你的sql语句

  • 用户86495912 用户86495912(提问者) 比如select ROW_NUMBER()over(order by sum(bf.finalDiscountFee) desc) as \'排名\' , bm.mainquotationuserName as \'客户经理\',sum(bf.finalDiscountFee) as \'销售额\' from biz_main bm inner join biz_fee bf on bm.bizid = bf.bizid and bm.flag =1 where bm.bizStatus = 10030 and bm.ProStartDate between \'2020-03-01\' and \'2020-03-31\' group by bm.mainquotationuserName order by sum(bf.finalDiscountFee) desc 这个我一直在用的,反正只要有group by就会报错
    2020-06-16 16:07 
  • snrtuemc snrtuemc 回复 用户86495912(提问者) 你把除了聚合后的销售额,其他字段都在group by后面写一次
    2020-06-16 16:13 
  • 用户86495912 用户86495912(提问者) 不行吧,我没说清楚,在设计的时候不会报错,能执行且看到设计的效果柱状图,只有在点预览仪表盘的或发布公共链接打开的时候会出错,完整出错信息为: java.util.concurrent.ExecutionException: com.finebi.conf.exception.execute.FineWidgetNoDataException: 错误代码:62400001The SQL : { select T_F47D92.[客户经理] [PA_0], sum(T_F47D92.[销售额]) [PA_1] from (select ROW_NUMBER()over(order by sum(bf.finalDiscountFee) desc) as \'排名\' , bm.mainquotationuserName as \'客户经理\',sum(bf.finalDiscountFee) as \'销售额\' from biz_main bm inner join biz_fee bf on bm.bizid = bf.bizid and bm.flag =1 where bm.bizStatus = 10030 and bm.ProStartDate between \'2020-03-01\' and \'2020-03-31\' group by bm.mainquotationuserName order by sum(bf.finalDiscountFee) desc ) [T_F47D92] group by T_F47D92.[客户经理] } is wrong, please check!除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
    2020-06-16 16:28 
最佳回答
0
XLLLv3见习互助
发布于2020-6-16 15:15

可以呀,你有写数据库模式名吗?

  • 5关注人数
  • 482浏览人数
  • 最后回答于:2020-12-22 21:32
    请选择关闭问题的原因
    确定 取消
    返回顶部