sql >> データベース >  >> RDS >> Mysql

MySQL-IDごとに1つの結果を制限する方法は?

    CREATE OR REPLACE VIEW employee_sales_totals AS
        SELECT
            e.*,
            SUM(p.total_sale_value)   AS total_sale_value
        FROM
            Employee e
        INNER JOIN
            Payment  p
                ON p.employee_number = e.employee_number 
        GROUP BY
            e.id  -- This should be the Primary Key / Surrogate Key of the employee table
    ;
    
    CREATE OR REPLACE VIEW shop_top_employee_by_sales_value AS
        SELECT
            s.storename          AS "Store", 
            e.employee_name      AS "Employee", 
            m.employee_name      AS "Manager", 
            p.total_sale_value   AS "Sales Value" 
        FROM
        (
            SELECT storeid, MAX(total_sale_value) AS total_sale_value
              FROM employee_sales_totals
          GROUP BY storeid
        )
           p
        INNER JOIN
            employee_sales_totals   e
                ON  e.storeid          = p.storeid
                AND e.total_sale_value = p.total_sale_value
        INNER JOIN
            fss_Shop   s 
                ON s.storeid = e.storeid 
        INNER JOIN
            Employee   m
                ON m.employee_number = e.manager_number 
    ;
    

    前の質問への回答によると、同じ店舗で複数の従業員が同じ総売上高で結ばれている場合、そのような従業員はすべて返還されます。



    1. PDOPHPでページネーションを作成する方法

    2. MySQLフルテキスト特殊文字の処理

    3. MySQLで数値をフォーマットする方法

    4. 降順からのMySQLの制限