使用窗口函数失败后,我通过使用大量相关查询创建了数据的分析摘要视图。我对这种观点的未来表现有一种不好的感觉,我相信有更好的方法可以做到这一点,我很乐意学习如何。我已经读过使用JOIN可以实现相同的功能,但是因为我的子查询中有几个不同的WHERE条件,所以我似乎无法理解它。该视图的代码如下:
SELECT colG1, colG2, colG3,
-- GET MIN AND MAX
MIN(colA) AS MinA,
MAX(colA) AS MaxA,
-- GET TOP VALUE
(SELECT TOP (1) colA
FROM myTable
WHERE colG1 = t1.colG1
AND colG2 = t1.colG2
AND colG3 = t1.colG3
ORDER BY Date DESC)
AS TopA,
MIN(colB) AS WorstB,
-- GET COUNT OF LESS-THAN 0
(SELECT COUNT(*)
FROM myTable
WHERE (colA < 0)
AND colG1 = t1.colG1
AND colG2 = t1.colG2
AND colG3 = t1.colG3)
AS LosingCount,
-- GET COUNT OF GREATER-THAN 0
(SELECT COUNT(*)
FROM myTable
WHERE (colA >= 0)
AND colG1 = t1.colG1
AND colG2 = t1.colG2
AND colG3 = t1.colG3)
AS WinningCount
FROM myTable AS t1
GROUP BY colG1, colG2, colG3
我不禁对GROUP和WHERE以及潜在的JOIN感到困惑。如果这是一个重复的问题,请道歉。
感谢任何帮助。谢谢你。