Хобрук: Ваш путь к мастерству в программировании

Столбец общего итога в Impala с использованием оконной функции

Я ищу способ сделать столбец «общий итог» для ВСЕХ групп в Impala.

Легко использовать оконные функции, чтобы получить общее количество разделенных групп, например:

сумма (x) по (разделу на A)

однако не похоже, что существует выражение для разделения на «все». Является ли это недостатком Импалы? Похоже, что в postgress вы можете оставить оператор over пустым.


Ответы:


1

Предложение о разделе является необязательным. Вы можете написать такой запрос:

select sum(x) over () from t;

Например:

[localhost:21000] > select id, sum(id) over () from tbl;
+----+-------------------+
| id | sum(id) OVER(...) |
+----+-------------------+
| 0  | 28                |
| 1  | 28                |
| 2  | 28                |
| 3  | 28                |
| 6  | 28                |
| 7  | 28                |
| 4  | 28                |
| 5  | 28                |
+----+-------------------+
Fetched 8 row(s) in 0.08s
26.08.2016
  • по какой-то причине я не могу этого сделать. Я получаю: errorMessage:AnalysisException: выберите выражение списка, не созданное выходом агрегации (отсутствует в предложении GROUP BY?): sum(X) OVER () Проблема не в общем предложении запроса GROUP BY (это очень просто, группировка по одному столбец). Я могу использовать аналитическую функцию, если я включаю раздел по оператору. 31.08.2016
  • Что-то еще не так с вашим запросом. Можете ли вы опубликовать больше запроса? 01.09.2016
  • SELECT a.app ,sum(a.rev) as 'rev_by group' ,sum(a.rev) over () as 'total' from rev_table группа a.app приводит к: выберите выражение списка, не созданное выходом агрегирования ( отсутствует в предложении GROUP BY?): sum(a.rev) OVER () Я не понимаю, что единственный другой неагрегированный столбец уже включен в предложение GROUP BY... не уверен, как это интерпретировать. спасибо за вашу помощь кстати 02.09.2016
  • Вы смешиваете агрегацию и оконные функции. Решение можно найти здесь: stackoverflow.com/questions/50201554/ 14.06.2019
  • Новые материалы

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

    React Hooks: основы деструктуризации массива
    Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

    Пакеты R, используемые в Tesla
    Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

    Сокращение и слияние токенов для эффективных моделей VL: обзор
    Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..