( SELECT companies.* FROM "database"."companies" companies INNER JOIN "database"."latest_date" latest ON companies.date = latest.latest_date AND latest.table_name = 'companies‘ ), contracts AS ( SELECT contracts.* FROM "database"."contracts" contracts INNER JOIN "database"."latest_date" latest ON contracts.date = latest.latest_date AND latest.table_name = 'contracts‘ ), devices AS ( SELECT devices.company_id as company_id, COUNT(devices.id) as count FROM "database"."devices" devices INNER JOIN "database"."latest_date" latest ON devices.date = latest.latest_date AND latest.table_name = 'devices‘ GROUP BY devices.company_id ) SELECT companies.id as “企業ID”, companies.name as "企業名", contracts.plan as "契約プラン", COALESCE(devices.count, 0) as "デバイス数" FROM companies INNER JOIN contracts ON companies.id = contracts.company_id INNER JOIN devices ON companies.id = devices.company_id ORDER BY devices.count DESC; 企業情報 テーブル 契約情報 テーブル デバイス情報 テーブル ※ 開発環境のダミーデータを使用 14