Объединение условий count/max Select в одно

Я пытаюсь объединить оба этих запроса в один, поэтому у меня есть один запрос на выборку, чтобы вернуть одну строку с количеством таблиц и максимальной датой. Я не могу найти простой способ сделать это. Есть идеи? Спасибо

select count(*) from ods.ADDRESS

select max(last_modified)
from
(
select
CASE WHEN MODIFY_DT IS NULL THEN CREATE_DT
ELSE MODIFY_DT END AS LAST_MODIFIED
FROM ODS.ADDRESS
)
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
36
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ну, просто объедини их :D

select count(*), max(
CASE WHEN MODIFY_DT IS NULL THEN CREATE_DT
ELSE MODIFY_DT END ) AS LAST_MODIFIED
  from ods.ADDRESS
Ответ принят как подходящий

Вот один из вариантов:

SELECT
    COUNT(*) AS cnt,
    MAX(CASE WHEN MODIFY_DT IS NULL THEN CREATE_DT ELSE MODIFY_DT END) AS LAST_MODIFIED
FROM ODS.ADDRESS;

Обратите внимание, что вам даже не нужен подзапрос. Мы также можем попробовать упростить вышеизложенное, используя COALESCE:

SELECT
    COUNT(*) AS cnt,
    MAX(COALESCE(MODIFY_DT, CREATE_DT)) AS LAST_MODIFIED
FROM ODS.ADDRESS;

Условная агрегация — один из способов сделать это:

select COUNT(*), 
       MAX(CASE WHEN MODIFY_DT IS NULL 
                THEN CREATE_DT
                ELSE MODIFY_DT 
           END) AS LAST_MODIFIED
from ODS.ADDRESS a;

Другие вопросы по теме