SQL グループ化により重複を削除し、他のフィールドで並べ替える

SQL グループ化により重複を削除し、他のフィールドで並べ替える

必要:

あるフィールドの同一項目を結合し、別の時間フィールドで並べ替えます。

例:

初めに

テーブルから都市を選択、都市でグループ化、日付で降順で並べ替え

集計関数またはGROUP BY句に日付が含まれていないため、エラーが報告されます。

次に、次の方法で日付をグループに追加します。

テーブルから都市を選択し、都市、日付でグループ化し、日付降順で並べ替えます

結果を得る

しかし、結果は依然として繰り返され、解決策はない。

時間順に並べないとその後の操作に影響が出るので、Baiduで長時間検索してようやく解決策を見つけました。

正しい書き方:

テーブルから都市を選択、都市でグループ化、最大(日付)で並べ替え、降順

とても魔法のような結果が見つかりました

その後、さらに情報を探してみたところ、max() の魔法を見つけました。

テーブルから city,max(date) を d1 として選択し、group by city,d1 を order by d1 desc します。

ここに書いておくと時間の並び順がわかります

もっと良い方法があれば、ぜひ共有してください。

補足: MYSQL の重複排除、DISTINCT と GROUP BY の違い

たとえば、次のテーブル user があります。

Distinct は、その後に重複するフィールドを持つレコードを除外します。

一意のユーザー名を返すには、distinct を使用します。select distinctive name from user; の結果は次のようになります。

一意の名前と ID を返すには、distinct を使用します。select distinctive name,id from user; を実行すると、結果は次のようになります。

このように distinctive name,id と記述すると、MySQL は、name フィールドと id フィールドの両方に重複があるレコードを除外したいと考えます。

SQL が次のように記述されている場合:

ユーザーからIDと一意の名前を選択

この場合、クエリするフィールドの先頭に distinctive を配置する必要があるため、MySQL はエラーを報告します。

Group by を使用すると、クエリ対象の複数のフィールドの 1 つから重複を削除できます。

名前でユーザーグループから id、name を選択します。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • SQL における Group By の使用法の詳細な説明
  • SQLは重複レコードを削除します(7種類)
  • SQL における group by と having の使用に関する詳細な分析
  • MySQL での複数フィールドによるソートと問題解決

<<:  HTML タグに類似: strong および em、q、cite、blockquote

>>:  Flexboxレイアウトの最もシンプルなフォーム実装

推薦する

Linux運用保守ツールSupervisor(プロセス管理ツール)のインストールと使用

1. はじめにSupervisor は Python で開発された汎用プロセス管理プログラムです。通...

js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

この記事の例では、コンテンツの計算を実現するためのjsドラッグアンドドロップテーブルの具体的なコード...

MySQL 学習ノート: 完全な SELECT ステートメントの使用例と詳細な説明

この記事では、MySQL 学習ノートの select ステートメントの完全な使用方法を例を使用して説...

カルーセル例の JavaScript 実装

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Linuxアカウントファイル制御管理の詳細な手順

Linux システムでは、ユーザーが手動で作成したさまざまなアカウントに加えて、システムまたはプログ...

モバイルでのHTML5経由のファイルアップロード

ほとんどの場合、PC でファイルをアップロードするにはプラグインが使用され、フラッシュが導入されても...

MySQL データベース開発仕様 [推奨]

最近、問題のある新しい SQL が本番データベースに入力される数を最小限に抑えるために、開発仕様を整...

Windows で nginx を素早くインストールし、自動的に起動するように設定する

目次1. Windows システムでの Nginx のインストールと起動プロセス: 2. 起動時にN...

TomcatはLog4jを使用してcatalina.outログを出力します。

Tomcat のデフォルトのログは java.util.logging を使用しますが、これにはい...

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

Linux で SSH 経由でリモート ファイルシステムをマウントする方法の詳細な説明

SSHFS の機能: FUSE(Linux向けの最高のユーザー空間ファイルシステムフレームワーク)を...

MySQL Null は 5 つの問題を引き起こす可能性があります (すべて致命的)

目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...

Vue コンポーネント化の一般的な方法: コンポーネント値の転送と通信

関連する知識ポイント親コンポーネントから子コンポーネントに値を渡す子コンポーネントから親コンポーネン...

mysql charset=utf8 本当に意味が分かりますか

1. まずテーブル作成ステートメントを見てみましょう テーブル学生を作成( sid int 主キー ...

Vue コンポーネントの切り替え、動的コ​​ンポーネント、コンポーネントのキャッシュについて

目次1. コンポーネント切り替え方式方法1: v-ifとv-elseを使用する方法 2: 組み込みコ...