Позвольте мне объяснить на примере, и вы сможете увидеть, как это работает.
Предполагается, что у вас есть следующая таблица DIM_EQUIPMENT:
VIN MAKE MODEL YEAR COLOR
-----------------------------------------
1234ASDF Ford Taurus 2008 White
1234JKLM Chevy Truck 2005 Green
5678ASDF Ford Mustang 2008 Yellow
Запустить ниже SQL
SELECT VIN,
MAKE,
MODEL,
YEAR,
COLOR ,
COUNT(*) OVER (PARTITION BY YEAR) AS COUNT2
FROM DIM_EQUIPMENT
Результат будет таким, как показано ниже
VIN MAKE MODEL YEAR COLOR COUNT2
----------------------------------------------
1234JKLM Chevy Truck 2005 Green 1
5678ASDF Ford Mustang 2008 Yellow 2
1234ASDF Ford Taurus 2008 White 2
Посмотрите, что случилось.
Вы можете рассчитывать без Group By на ГОД и совпадать с ROW.
Другой интересный способ получить тот же результат, если, как показано ниже, с помощью предложения WITH, WITH работает как встроенный VIEW и может упростить запрос, особенно сложные, что здесь не так, поскольку я просто пытаюсь показать использование
WITH EQ AS
( SELECT YEAR AS YEAR2, COUNT(*) AS COUNT2 FROM DIM_EQUIPMENT GROUP BY YEAR
)
SELECT VIN,
MAKE,
MODEL,
YEAR,
COLOR,
COUNT2
FROM DIM_EQUIPMENT,
EQ
WHERE EQ.YEAR2=DIM_EQUIPMENT.YEAR;