在proc sql中使用SELECT *和GROUP BY时,结果不会折叠。这是因为在使用GROUP BY子句时,查询结果会按照指定的列进行分组,而SELECT *会选择所有列,包括分组列和非分组列。当使用GROUP BY时,非分组列的值会被忽略,而只返回每个分组的唯一值。
为了解决这个问题,可以使用具体的列名代替SELECT *,并确保选择的列在GROUP BY子句中出现。这样可以确保结果按照预期进行折叠。
例如,假设有一个名为"orders"的表,包含以下列:order_id、customer_id和order_date。如果想按照customer_id进行分组,并计算每个客户的订单数量,可以使用以下查询:
PROC SQL;
SELECT customer_id, COUNT(*) as order_count
FROM orders
GROUP BY customer_id;
QUIT;
在这个例子中,只选择了customer_id列,并在GROUP BY子句中指定了customer_id。这样就可以得到每个客户的订单数量,而不会出现结果不折叠的问题。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云