【发布时间】:2022-01-17 01:57:08
【问题描述】:
您好,我需要使用 2 个选择语句运行查询,一个具有平均计算并按名称分组,另一个选择,在其他表中查找该名称,并获取一些列并执行 JOIN 以合并两者且仅在上面留下一列“名称”。
第一个表是这样的:
+------+-------------+-----------+-----------+
| Name | Time | LowPrice | HighPrice |
+------+-------------+-----------+-----------+
| #AAA | 12/13/2021 | 383.12 | 393.9 |
| #BBB | 12/13/2021 | 1110.34 | 1114.1 |
+------+-------------+-----------+-----------+
第二张桌子是这样的:
+------+-------+----------+
| Name | digit | currency |
+------+-------+----------+
| #AAA | 2 | USD |
| #BBB | 1 | EUR |
+------+-------+----------+
最终查询应返回如下内容:
+------+-------------+-----------+-----------+-------+----------+
| Name | Time | LowPrice | HighPrice | digit | currency |
+------+-------------+-----------+-----------+-------+----------+
| #AAA | 12/13/2021 | 383.12 | 393.9 | 2 | USD |
| #BBB | 12/13/2021 | 1110.34 | 1114.1 | 1 | EUR |
+------+-------------+-----------+-----------+-------+----------+
我知道这个查询应该是这样的:
SELECT *
FROM (
SELECT name, date_trunc('day', "Time"), avg("LowPrice"), avg("HighPrice")
FROM sometable
GROUP BY "name", date_trunc('day', "Time"
) t
CROSS JOIN (
SELECT name, digit, currrency
FROM othertable
GROUP BY "name"
) m
但不起作用,感谢您的提醒并帮助我调试此问题
【问题讨论】:
标签: sql postgresql