В SQL как сделать значения Count Same в столбце SQL с еще 5 столбцами, не входящими в предложение GROUP BY? - PullRequest
0 голосов
/ 09 апреля 2020

Я имею 5 столбцов в списке выбора и хочу добавить еще один столбец подсчета, который подсчитывает количество одинаковых [Locations] для каждого [Locations] в этом столбце. Ниже приведен мой код:

SELECT [ItemTable].[Item_Number],
       [ProductTable].[Product Series],
       [SalesTable].[Locations],
       COUNT(SalesTable.Locations),
       [ItemTable].[Quantity],
       [SalesTable].[Shipping Date]
FROM [ItemTable] 
  inner join [SalesTable] on 
  [ItemTable].[Sales_Doc_Num]=[SalesTable].[Sales_Doc_Num] 
  left join [ProductTable] on
  [ItemTable].[Item_Number]=[ProductTable].[ITEMNMBR]
WHERE[SalesTable].[Shipping Date]='04/03/2020'
GROUP BY SalesTable.Locations

Ошибка:

Столбец Item_Number недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в GROUP. Предложение BY.

Я знаю, что это ошибка logi c, но я не знаю, как справиться с этим делом. Я попытался добавить все эти столбцы в предложение GROUP BY, не было бы никакой ошибки, но все значения в столбце подсчета равны 1, а это не то, что я ищу. Я также пробовал подзапросы, но столкнулся с другой ошибкой.

Окончательные данные, которые я ищу, выглядят так:

enter image description here

1 Ответ

0 голосов
/ 09 апреля 2020

Вы, похоже, ищете количество окон, а не агрегат:

SELECT [ItemTable].[Item_Number],
       [ProductTable].[Product Series],
       [SalesTable].[Locations],
       COUNT(*) OVER(PARTITION BY SalesTable.Locations) CNT,  --> here
       [ItemTable].[Quantity],
       [SalesTable].[Shipping Date]
FROM [ItemTable] 
  inner join [SalesTable] on 
  [ItemTable].[Sales_Doc_Num]=[SalesTable].[Sales_Doc_Num] 
  left join [ProductTable] on
  [ItemTable].[Item_Number]=[ProductTable].[ITEMNMBR]
WHERE[SalesTable].[Shipping Date]='04/03/2020'
...