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

SQLランキングソリューション

    私のブログの記事から少し変更されたクエリ:

    SELECT  q.*,
            @r := @r + 1
    FROM    (
            SELECT  @_acl_id := -1,
                    @r := 0
            ) vars
    STRAIGHT_JOIN
            (
            SELECT  acl.id AS acl_id, quote.id AS quote_id
            FROM    acl
            JOIN    quote
            ON      (acl.limiter IS NULL OR quote.reputation >= acl.limiter)
            ORDER BY
                    acl.id ASC, quote.created_at DESC
            ) q
    WHERE   CASE WHEN @_acl_id <> acl_id THEN @r := 0 ELSE 0 END IS NOT NULL
            AND (@_acl_id := acl_id) IS NOT NULL
    


    1. PostgreSQLでアイドル状態の接続を自動的に閉じる方法は?

    2. SQL:多角形の結合

    3. 多対多のテーブル-パフォーマンスが悪い

    4. MSAccessへのpostgres