172 похожих чатов

Привет! А кто-нибудь знает, почему нет функционала (и планируется ли

он, или, может, он есть в других СУБД), когда алиас можно тут же повторно использовать? Например, вместо
SELECT COUNT(*) AS total,
COUNT(*) FILTER (WHERE status = 'done') AS done,
COUNT(*) FILTER (WHERE status = 'done') / COUNT(*) AS percent
Можно было бы написать
SELECT COUNT(*) AS total,
COUNT(*) FILTER (WHERE status = 'done') AS done,
done / total AS percent

7 ответов

6 просмотров

можешь попробовать cte или подзапрос использовать. в других субд, вроде, так же.

Kirill- Автор вопроса
Какой-то Хмырь
можешь попробовать cte или подзапрос использовать....

да, но объемно получается и непонятно, почему нельзя сделать так, чтобы алиас подставлялся

Kirill
да, но объемно получается и непонятно, почему нель...

я думаю,это связано с порядком выполнения и планирования запроса. что-нибудь вроде, что он сначла проверяет наличие полей, а потом посваивает им алиасы. но это не точно. тут есть типы, которые тебе точно скажут. погоди, может не проснулись еще

Kirill
да, но объемно получается и непонятно, почему нель...

Не понятно, потому что это просто и вы это умеете реализовать? Или не понятно, потому что вы вообще не в курсе как работает волшебство SQL?

Вложенные SELECT

> почему нет функционала Потому что, насколько я помню, такое поведение предписано в ISO SQL. > или, может, он есть в других СУБД В Amazon Redshit, например: https://stackoverflow.com/a/59335141 (ссылка сразу с проблемами такого подхода). > почему нельзя сделать так, чтобы алиас подставлялся Собственно, пример выше демонстрирует две причины, почему это, эээ... не совсем прекрасная идея. ;) > Было бы читабельнее Если придумать, как решить проблемы выше (особенно с неоднозначностью ссылки — это уж совсем неприятная ловушка, особенно в реализации redshit) — я согласен. Но, пока этого нет в ISO SQL, в PostgreSQL мы это вряд ли увидим...

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта