2017-08-01 5 views
0

私の新しい仕事では、私はのSQLをもっと必要としています。 重複列を削除する必要があるので、私はDISTINCTステートメントを使用するのが最も良いと思っていました。しかし、私はMIN MAXステートメントがより適していると指摘されました。私はまだSQLにかなり新しいので、私はもう一方を使用するときにいくつかのアドバイスを得ることができるのだろうかと思っていました。すべての助けに感謝します!MySQLでMINTIクエリをDISTINCTクエリよりも使用していますか?

ありがとうございます!

答えて

2

これはコメントのために少し長いです。

最初に、distinctでなく、select distinctである。それは重要な違いであり、SQLを習得する人々はしばしば混乱します。

次に、select distinctmin()/max()は異なることを行います。後者は集約関数であり、group byと一緒に使用する必要があります。

私の意見では、select distinctはSQL言語の不要な部分です。ほとんどの場合、それはgroup byによって処理されます。 group byを正しく使用することを学ぶ方がはるかに優れています。 (また、サイドノートとして、select distinctはほとんどない有用group byとされない。)

+0

あなたはここのエキスパートですが、私は有用ではない選択された区別に同意します。私はそれを頻繁に利用する。グループを使用するよりも、コードを読むときにプログラマーにとってより論理的な意味があることがあります。グループ別にすべてを選択することができますが、レンチは時折かなりまともなハンマーを作ることができます。 – SandPiper

+0

私はまた、別名が有用でないことに同意します。私には、言うことははるかに明確です**デュアル**から別のダミーを選択することは、**ダミーでデュアルグループからダミーを選択することです**。透明性は常に重要です。 –

+0

@SandPiper。 。 。私は "役に立たない"とは言わなかった、私は "不要"と言った。これは、 'distinct distinct * 'を除く全てのケースにおいて、かなり単純に' group by'に置き換えられています。 –

0

MaxとMinはそれぞれすべて一意の値が(重複を避けるDISTINCT戻る一方(最大又は最小値を有する一つのレコード)を単一の結果を返します)。

関連する問題