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

PostgreSQL-GROUPBY句または集計関数で使用

    このようなクエリ(すべてまたはほとんどの行を取得する)は高速 GROUPの場合 JOINする前に 。このように:

    SELECT id, name, created_at, updated_at, u.ct
    FROM   cars c
    LEFT   JOIN (
        SELECT car_id, count(*) AS ct
        FROM   users
        GROUP  BY 1
        ) u ON u.car_id  = c.id
    ORDER  BY u.ct DESC;
    

    このようにすると、必要な結合操作がはるかに少なくなります。そしてテーブルの行cars 最初に多くのユーザーに参加して乗算し、次にグループ化して再度一意にする必要はありません。
    グループ化する必要があるのは適切なテーブルのみであるため、ロジックも単純になります。



    1. PHPとMySQLのページネーション

    2. MariaDBでのUPDATEXML()のしくみ

    3. EFコードファーストの計算列

    4. データ探索のためにMetabaseをMySQLに接続する