楼主: the_fly_winds
14170 6

sas sql中group by用法的疑问 [推广有奖]

  • 0关注
  • 1粉丝

已卖:168份资源

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
1139 个
通用积分
4.9700
学术水平
16 点
热心指数
24 点
信用等级
14 点
经验
2333 点
帖子
106
精华
0
在线时间
264 小时
注册时间
2014-9-28
最后登录
2025-6-4

楼主
the_fly_winds 发表于 2016-11-4 17:09:28 |AI写论文
20论坛币
数据源很简单! 数据源与程序如下:

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


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


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


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



  1. data n;
  2. input code $ price;
  3. cards;
  4. 000001        56
  5. 000001        57
  6. 000001        58
  7. 000001        59
  8. 000001        60
  9. 000001        61
  10. 000002        62
  11. 000002        63
  12. 000002        64
  13. 000003        65
  14. 000003        66
  15. 000003        67
  16. 000003        68
  17. 000003        69
  18. 000003        70
  19. 000003        71
  20. 000003        72
  21. 000003        73
  22. run;

  23. proc sql;
  24. create table n1 as
  25. select *
  26. from n
  27. group by code;
  28. quit;
复制代码



最佳答案

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;
关键词:Group sql proc sql Select Create sql语言 百度 表达式 数据源 price

沙发
wang1839 在职认证  发表于 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;



已有 1 人评分学术水平 热心指数 信用等级 收起 理由
the_fly_winds + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
baiyaoqian 发表于 2016-11-4 17:34:45
what?

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

  1. proc sql;
  2. create table n1 as
  3. select code, count(*) as num_code
  4. from n
  5. group by code;
  6. quit;
复制代码

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

报纸
wang1839 在职认证  发表于 2016-11-5 14:18:36
顺便提一句,GROUP BY var1,var2 完了数据默认就是按VAR1 VAR2 SORT,如果要反向可以在var后面加DESC

地板
the_fly_winds 发表于 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已经排序了

7
wang1839 在职认证  发表于 2016-11-5 23:49:16
如果GROUP BY VAR 和ORDER BY 同时用的话,ORDER BY的排序后执行,你可以自己运行试试

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 07:57