sql >> Databáze >  >> RDS >> Mysql

MySQL křížová / kontingenční agregace. Odebírání počtů na základě sloupce v jiné tabulce

SELECT
    CASE
        WHEN ci.make_model LIKE "Acura%" THEN "Acura"
        WHEN ci.make_model LIKE "Ford%" THEN "Ford"
        WHEN ci.make_model LIKE "Toyota%" THEN "Toyota"
        WHEN ci.make_model LIKE "Tesla%" THEN "Tesla"
    END AS Make,
    SUM(CASE WHEN ci.color = "Black" THEN 1 ELSE 0 END) as Black,
    SUM(CASE WHEN ci.color = "Blue" THEN 1 ELSE 0 END) as Blue,
    SUM(CASE WHEN ci.color = "White" THEN 1 ELSE 0 END) as White
FROM car_inventory ci
WHERE 
    (ci.year > 2012) and
    (ci.car_id not in (select distinct il.car_id from inventory_log il where il.note like '%issue%'))
GROUP BY Make
ORDER BY Make;


  1. SELECT DISTINCT pouze první čtyři čísla

  2. Jak můžete vidět, jakou úroveň izolace transakcí používá libovolná relace oracle

  3. Jak najít všechny vztahy mezi všemi tabulkami mysql?

  4. Časový interval pro načtení dat z db a zastavení, když data dorazí