CREATE TABLE asset_parts (asset_id NUMBER, part_id NUMBER)
CREATE TABLE staff (staff_id NUMBER, staff_name CLOB, gender CLOB, other_staff_details CLOB)
CREATE TABLE part_faults (part_fault_id NUMBER, part_id NUMBER, fault_short_name CLOB, fault_description CLOB, other_fault_details CLOB)
CREATE TABLE engineer_visits (engineer_visit_id NUMBER, contact_staff_id NUMBER, engineer_id NUMBER, fault_log_entry_id NUMBER, fault_status CLOB, visit_start_datetime TIME, visit_end_datetime TIME, other_visit_details CLOB)
CREATE TABLE maintenance_contracts (maintenance_contract_id NUMBER, maintenance_contract_company_id NUMBER, contract_start_date TIME, contract_end_date TIME, other_contract_details CLOB)
CREATE TABLE parts (part_id NUMBER, part_name CLOB, chargeable_yn CLOB, chargeable_amount CLOB, other_part_details CLOB)
CREATE TABLE fault_log (fault_log_entry_id NUMBER, asset_id NUMBER, recorded_by_staff_id NUMBER, fault_log_entry_datetime TIME, fault_description CLOB, other_fault_details CLOB)
CREATE TABLE skills (skill_id NUMBER, skill_code CLOB, skill_description CLOB)
CREATE TABLE third_party_companies (company_id NUMBER, company_type CLOB, company_name CLOB, company_address CLOB, other_company_details CLOB)
CREATE TABLE skills_required_to_fix (part_fault_id NUMBER, skill_id NUMBER)
CREATE TABLE engineer_skills (engineer_id NUMBER, skill_id NUMBER)
CREATE TABLE fault_log_parts (fault_log_entry_id NUMBER, part_fault_id NUMBER, fault_status CLOB)
CREATE TABLE maintenance_engineers (engineer_id NUMBER, company_id NUMBER, first_name CLOB, last_name CLOB, other_details CLOB)
CREATE TABLE assets (asset_id NUMBER, maintenance_contract_id NUMBER, supplier_company_id NUMBER, asset_details CLOB, asset_make CLOB, asset_model CLOB, asset_acquired_date TIME, asset_disposed_date TIME, other_asset_details CLOB)

Which third party companies have at least 2 maintenance engineers or have at least 2 maintenance contracts? List the company id and name.
SELECT T1.company_id, T1.company_name FROM third_party_companies AS T1 JOIN maintenance_engineers AS T2 ON T1.company_id = T2.company_id GROUP BY T1.company_id HAVING COUNT(*) >= 2 UNION SELECT T3.company_id, T3.company_name FROM third_party_companies AS T3 JOIN maintenance_contracts AS T4 ON T3.company_id = T4.maintenance_contract_company_id GROUP BY T3.company_id HAVING COUNT(*) >= 2
SELECT "T1"."company_id", "T1"."company_name" FROM "third_party_companies" "T1" JOIN "maintenance_engineers" "T2" ON "T1"."company_id" = "T2"."company_id" GROUP BY "T1"."company_id" HAVING COUNT(*) >= 2 UNION SELECT "T3"."company_id", "T3"."company_name" FROM "third_party_companies" "T3" JOIN "maintenance_contracts" "T4" ON "T3"."company_id" = "T4"."maintenance_contract_company_id" GROUP BY "T3"."company_id" HAVING COUNT(*) >= 2