Я пытаюсь выполнить следующий запрос к таблице базы данных SQL Server с GROUP BY
для столбца, который является результатом оператора CASE
, выполненного для подзапроса:
SELECT
AVG(sales) as avg_sales,
COUNT(*) as total_sales,
CASE
WHEN (pay_method='cc') AND (user_type='subscriber') THEN 'cc-subscribed'
WHEN (pay_method='cash') AND (user_type='subscriber') THEN 'cash-subscribed'
ELSE 'standard'
END as user_payment_type
FROM
(SELECT
column1, column2,
UserType as user_type,
CASE
WHEN column1='something' AND column2='something_else' THEN 'cc'
WHEN column1='something_else' AND column2='something' THEN 'cash'
END as pay_method
FROM MyTable) b
GROUP BY
user_payment_type
Я получаю ошибку
MSSQLDatabaseException: (207, b "Неверное имя столбца 'user_payment_type'. Сообщение об ошибке DB-Lib 20018, серьезность 16: \ nОбщая ошибка SQL Server: проверка сообщений от SQL Server \ n")
Обратите внимание, что имя столбца user_payment_type
уникально и не существует в MyTable
.