ORDER BY
に列番号と集計関数を使用すると、2つの異なる結果が得られます。これらの2つの方法の違いは何ですか? (私は彼らが同じ出力を持っていると思った)列番号または集計関数を使用したSQL ORDER BY
キャストリストサイズの順番で1978の映画をリストアップする。
movie(id, title, yr, director)
actor(id, name)
casting(movieid, actorid, ord)
回答1 ORDERを使用して列番号を持つBY:
SELECT title
,COUNT(a.id)
FROM movie m
,casting c
,actor a
WHERE m.id=movieid
AND a.id=actorid
AND yr=1978
GROUP BY title
ORDER BY 2 DESC
COUNT(a.id)
を使用して、以下の3つのテーブルがあります。すべては最後の行
...
ORDER BY COUNT(a.id) DESC
私はそれが信じがたいと思います。変更を加えたり、何かを残したりすることなく、両方の出力を両方のクエリで投稿できますか? –
行間の結び付きを除いて、同じ出力でなければなりません。タイを使用すると、実行ごとに順序が異なる場合があります。タイトルを列で2番目の順序で追加して、結び付きを持つ永続ソート順を取得します。 –
@MikaelEriksson - これがMySQLの場合は、確かです。しかし、ベンダー固有の動作です。例えば、MS SQL Serverでは、最初はスカラー定数 '2'で順序付けされ、*フィールド2 *とは関係がありません。 – MatBailie