В настоящее время у меня возникают проблемы при создании двух столбцов с AVG, сгруппированных по 2 столбцам идентификаторов
Я попробовал приведенный ниже код, чтобы попытаться решить эту проблему.
Мои результаты, я получаю копиютот же ID_STORE бесчисленное время с AVG для каждой строки.Моя цель - создать одну строку для ID_STORE (DISTINCT) и несколько строк для ID_BRICK путем объединения двух AVG.
| ID_BRICK | ID_STORE | AVG1 | AVG2 |
| 00000001 | 0003 | 70.47 | 85.40 |
| 00000001 | 0003 | 61.55 | 85.40 |
| 00000001 | 0003 | 55.33 | 85.40 |
...
| ID_BRICK | ID_STORE | AVG1 | AVG2 |
| 00000001 | 0004 | 80.47 | 85.40 |
| 00000001 | 0004 | 161.55 | 85.40 |
| 00000001 | 0004 | 15.33 | 85.40 |
...
| ID_BRICK | ID_STORE | AVG1 | AVG2 |
| 00000001 | 0005 | 60.47 | 85.40 |
| 00000001 | 0005 | 11.85 | 85.40 |
| 00000001 | 0005 | 19.23 | 85.40 |
Мой запрос
SELECT
ID_STORE,
ID_BRICK,
AVG1,
AVG2,
CASE
WHEN AVG1>=AVG2 THEN 'HIGH TOP3'
WHEN AVG1<AVG2 THEN 'LOW TOP3'
END AS CLASS_TOP
FROM(
SELECT
ID_STORE,
ID_BRICK,
AVG(V.PRICE) AS AVG1,
AVG(V.PRICE) OVER(PARTITION BY L.ID_BRICK) AS AVG2
FROM CPVBI.dbo.SALES V
INNER JOIN CPVBI.dbo.STORE L
ON (L.ID_STORE=V.ID_STORE)
INNER JOIN CPVBI.dbo.BRAND M
ON(V.ID_BRAND = M.ID_BRAND)
WHERE (L.FLAG_STORE = '1' AND M.FLAG_BRAND = 'S') AND ( ID_BRAND = '53112' OR ID_BRAND = '53130' OR ID_BRAND = '53111')
GROUP BY L.ID_BRICK, L.ID_STORE, V.PRICE
)AS T2
ORDER BY ID_STORE;
Я хотел бы получить результатымой запрос произвести
| ID_BRICK | ID_STORE | AVG1 | AVG2 |
| 00000001 | 0003 | 70.47 | 85.40 |
| 00000001 | 0004 | 65.33 | 85.40 |
| 00000001 | 0005 | 67.33 | 85.40 |