我有两个查询返回双精度值的单柱:司在SQL查询语句
(SELECT scale
FROM (SELECT title,
scale,
dense_rank() OVER (PARTITION BY title
ORDER BY scale ASC) AS r
FROM signatures) t
WHERE r = 1)
...和:
(SELECT scale
FROM (SELECT scale,
dense_rank() OVER (PARTITION BY title
ORDER BY scale ASC) AS r
FROM signatures) t
WHERE r = 2)
我想选择第一个查询( Q1)除以第二个查询(Q2)。即,(Q1的第1行)/(Q2的第1行)。并继续沿着其余的行。
我曾尝试:
SELECT ((SELECT scale
FROM (SELECT title,
scale,
dense_rank() OVER (PARTITION BY title
ORDER BY scale ASC) AS r
FROM signatures) t
WHERE r = 1)
/
(SELECT scale
FROM (SELECT scale,
dense_rank() OVER (PARTITION BY title
ORDER BY scale ASC) AS r
FROM signatures) t
WHERE r = 2)
)
但有没有运气。 任何人都可以看到一种方法来做到这一点?我可以分别发送这两个查询,然后运行一个循环并分割元素,但这不适用于半大记录集。
此外,它应该不重要,但我使用PostgreSQL。
你知道如果处理关系,`DENSE_RANK`会返回相同的值吗?例如,您可以将三个实例并列第二名,这会导致您的分区发生悲伤...... – 2011-01-13 16:47:42
@OMG。好的,但是如果我单独运行查询,我会得到正确的列结果。是不可能在一个陈述中分开这两个? – Brett 2011-01-13 17:01:28