sql - SQL - 使用别名/数学计算/在哪里分组
问题描述
我在使用列中的别名进行 SQL 查询并将别名与 group by 一起使用时遇到问题。我的理解是 group by 在创建选择列别名之前得到处理。我尝试使用子组,但我似乎无法获得正确的语法。对于这两个查询,我都收到“ORA-00933:SQL 命令未正确结束”。我正在使用 python 格式函数来插入诸如 epoch date int 之类的值。我可以获得语法方面的帮助吗?
最初的尝试
SELECT
SUM(wall_clock_time) AS workToBeDone,
FLOOR((event_time-{fromTs})/{interval}) as period
FROM {table}
WHERE submit_time >= {fromTs} AND event_time < {untilTs}
GROUP BY period
ORDER BY period
子组尝试
SELECT
SUM(wall_clock_time) AS workToBeDone,
period
FROM
(
SELECT
wall_clock_time,
(SELECT FLOOR((event_time-{fromTs})/{interval}) FROM {table} WHERE submit_time >= {fromTs} AND event_time < {untilTs}) as period
FROM
{table}
WHERE submit_time >= {fromTs} AND event_time < {untilTs}) AS period
) AS inline
GROUP BY period
ORDER BY period;
解决方案
我不确定这个查询中的日期是如何传递的,所以我使用实际值来显示查询。
SELECT SUM(workToBeDone) AS workToBeDone,
PERIOD
FROM
(SELECT
wall_clock_time AS workToBeDone,
FLOOR((event_time- to_date('10-oct-2019','dd-mon-yyyy'))/10) as period
FROM {table}
WHERE submit_time >= to_date('10-oct-2019','dd-mon-yyyy')
AND event_time < to_date('10-oct-2019','dd-mon-yyyy'))
GROUP BY PERIOD
ORDER BY PERIOD;
我希望wall_clock_time
不是日期数据类型列。
干杯!!
推荐阅读
- java - 我怎样才能让两个 JOptionPane 一起出现在我的第一页上,并让一个循环监听两个 JOptionPane 的正确答案?
- python-3.x - 运行 pip3 install pandas_datareader 后,Jupyter(Anaconda)中没有名为“pandas_datareader”的模块
- django - 活动的 Django 应用程序无法识别全局 $PATH
- regex - 使用 ag 进行多行正则表达式搜索
- java - 如何从 http 标头 java 中检索特定信息?
- java - 为什么默认对象的 hashCode 在不同的设备中返回不同的值?
- java - 在自定义布局类上膨胀 xml-Layout 的问题
- composer-php - 了解作曲家要求及其远程位置
- flutter - Flutter Bloc Design - 通知页面有关更改
- c - 如何为嵌套结构正确分配内存?