如何使用单个聚合函数按一列分组,但在 oracle 上 select 多列?
How to group by one column with single aggregate function but select multiple columns on oracle?
我想在单列上使用聚合函数按一列分组,同时选择多个其他 column.This 可以通过下面的查询在 MySQL 中轻松实现。
SELECT sum(count),store,date,product FROM sales_log_bak where date > "2017-03-01" and date < "2017-04-05" group by date
但是,上述查询在 oracle 上不起作用 Database.What 将等同于 oracle 中的查询以实现上述查询中 MySQL 给出的结果?
您可以使用 Analytic Functions:
SELECT sum(sales_count) OVER (PARTITION BY sales_date),
store, sales_date, product
FROM sales_log_bak
where sales_date > DATE '2017-03-01' and sales_date < DATE '2017-04-05';
注意,date
和 count
是 Oracle 中的保留字,您不应该将它们用于列名。
我想在单列上使用聚合函数按一列分组,同时选择多个其他 column.This 可以通过下面的查询在 MySQL 中轻松实现。
SELECT sum(count),store,date,product FROM sales_log_bak where date > "2017-03-01" and date < "2017-04-05" group by date
但是,上述查询在 oracle 上不起作用 Database.What 将等同于 oracle 中的查询以实现上述查询中 MySQL 给出的结果?
您可以使用 Analytic Functions:
SELECT sum(sales_count) OVER (PARTITION BY sales_date),
store, sales_date, product
FROM sales_log_bak
where sales_date > DATE '2017-03-01' and sales_date < DATE '2017-04-05';
注意,date
和 count
是 Oracle 中的保留字,您不应该将它们用于列名。