Может ли SQLite различать guish между столбцом некоторой псевдонимной таблицы, например, table1.column
, и столбцом с псевдонимом с тем же именем, например column
, в операторе SELECT
?
Это важно, потому что мне нужно сослаться на столбец, который я строю в инструкции SELECT
позже в предложении HAVING
, но не должен путать его со столбцом в таблице с псевдонимами. Насколько мне известно, я не могу создать псевдоним таблицы, которая будет построена в моем операторе SELECT
(не возвращаясь к некоторому неприятному обходному пути, например SELECT * FROM (SELECT ...) AS alias
), чтобы убедиться, что оба они различимы.
Вот урезанная версия код, который меня интересует:
SELECT
a.entity,
b.DATE,
TOTAL(a.dollar_amount*b.ret_usd)/TOTAL(a.dollar_amount) AS ret_usd
FROM holdings a
LEFT JOIN returns b
ON a.stock = b.stock AND
a.DATE = b.DATE
GROUP BY
a.entity,
b.DATE
HAVING
ret_usd NOT NULL
По сути, я хочу избавиться от групп, для которых я не могу найти никаких возвратов и, таким образом, появится со значениями NULL
. Я не использую INNER JOIN
, потому что в моем производственном коде я объединяю несколько типов возвратов - по некоторым из которых у меня может не быть данных. Я хочу удалить только те группы, для которых у меня нет возвратов ни для одного из типов возвращаемых данных.
Насколько я понимаю, документация SQLite не решает эту проблему.