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レイアウトの最もシンプルなフォーム実装

推薦する

Vue vee-validateプラグインの簡単な使い方

目次1. インストール2. インポート3. 検証ルールを定義します(エクスポート用に js ファイル...

jQueryはhide()とtoggle()関数を使用してカメラブランド表示の非表示機能を実現します。

最近、jQuery を学習しているときに、show()、hide()、toggle() 関数に出会い...

Vue Element フロントエンドアプリケーション開発 従来の Element インターフェースコンポーネント

目次1. リストインターフェースとその他のモジュールの表示処理2. 従来のインターフェースコンポーネ...

Linux nohup コマンドの原理と例の分析

nohup コマンドUnix/Linux を使用する場合、通常はプログラムをバックグラウンドで実行す...

MySQL シリーズ 6 のユーザーと認証

目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....

画像ボタン送信とフォーム繰り返し送信の問題に関する議論

多くの場合、フォームを美しくするために、送信ボタンが画像に置き換えられます。ただし、細部に注意を払わ...

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

@Font-face の基本的な使い方と、すべてのブラウザと互換性を持たせる方法

@Font-face 基本紹介: @font-face は、Web ページにカスタム フォントを表示...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

Vueスロットの実装原理についての簡単な説明

目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...

画像を使用してハイパーリンクのパーソナライズされた下線を実現します

画像内に下線付きのリンクが表示されても驚かないでください。実はとても簡単なので、あなたにもできるので...

Win10にMySQL8圧縮パッケージ版をインストールするチュートリアル

1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...

Dockerコンテナ相互接続の予備的な実践についての簡単な説明

1. Dockerコンテナ間の相互接続Docker は現在、軽量の仮想化ソリューションとなっています...

JS ES の新機能: 拡張演算子の紹介

1. スプレッド演算子スプレッド演算子は 3 つのドット ... で、複数の引数 (関数呼び出しなど...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...