全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
14078 6
2016-11-04
悬赏 20 个论坛币 已解决
数据源很简单! 数据源与程序如下:

很明显,我是想用sql group by让他统计每只股票的数量


我百度了goup by的用法, 我的写法与上面一模一样, 为什么它就是说


"GROUP BY 子句已变换为 ORDER BY 子句,因为 SELECT 子句和相关表的表达式的可选 HAVING 子句都没有引用汇总函数。"


有大神能简单的讲解一下这里在sas中要怎么用吗??我的写法到底哪儿错了? 怎么错了呢?
是不是sas中的sql与一般的sql语言不一样??



复制代码



最佳答案

wang1839 查看完整内容

group by var 是你在SELECT VAR要创造统计量,如SUM,count,max,min这样才起作用,本来命令的意思就是分组统计的意思。楼主可以看看下面两个命令的结果区别: proc sql; create table n1 as select * , count(*) as n from n group by code; quit; proc sql; create table n2 as select code,count(*) as n from n group by code; quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-11-4 17:09:29
group by var 是你在SELECT VAR要创造统计量,如SUM,count,max,min这样才起作用,本来命令的意思就是分组统计的意思。楼主可以看看下面两个命令的结果区别:
proc sql;
create table n1 as
select * , count(*) as n from n group by code;
quit;

proc sql;
create table n2 as
select code,count(*) as n from n group by code;
quit;



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-4 17:34:45
what?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-4 20:13:25
我还没学过proc sql
不过我认为应该是这么写
测试也还是通过的
供参考

复制代码

至于出错的原因,只从SQL的语法来说GROUP BY子句是仅在按组计算聚集(聚合)时使用的
所以在log会出现那一句

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-5 14:18:36
顺便提一句,GROUP BY var1,var2 完了数据默认就是按VAR1 VAR2 SORT,如果要反向可以在var后面加DESC
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-5 22:41:11
wang1839 发表于 2016-11-5 14:18
顺便提一句,GROUP BY var1,var2 完了数据默认就是按VAR1 VAR2 SORT,如果要反向可以在var后面加DESC
那么有了group by是不是order by就没用了啊, group已经排序了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群