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

推薦する

角度コンテンツ投影の詳細な説明

目次単一コンテンツ投影マルチコンテンツ投影単一条件のコンテンツ投影アプリ-人物-htmlアプリ担当者...

CSSは背景画像の画面適応を実現する

ログインページなどのホームページを作成する場合、大きな背景画像を配置する必要があり、さまざまな画面の...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

CocosCreator 一般的なフレームワーク設計リソース管理

目次Cocos Creator のリソース管理に関する問題リソースの依存関係リソースの使用レスローダ...

MacにMySQLをインストールするときに初期パスワードを忘れた場合の対処方法

パスワードを忘れると困ります。Mac に MySQL をインストールするための初期パスワードを忘れて...

Linux での mysql-5.7.28 インストール チュートリアル

1. 公式ウェブサイトから Linux バージョンをダウンロードします: https://dev.m...

MySQL query_cache_type パラメータと使用方法の詳細

MySQL クエリ キャッシュを設定する目的は次のとおりです。クエリ結果をキャッシュしておくと、次回...

フォームから Vue ElementUI を使用してログイン効果を実装する例

目次1. ElementUIで基本的なスタイルを構築する2. [送信]ボタンをクリックして、アカウン...

Web プロジェクトでの SQL インジェクションの防止

目次1. SQLインジェクションの概要2. SQLインジェクション攻撃の全体的な考え方SQLインジェ...

Maven モードで Tomcat ソースコードを実行する方法

序文最近、Tomcat の起動プロセスを分析していました。Tomcat のソース コードはアイデア次...

Reactはページング効果を実装する

この記事では、Reactでページング効果を実現するための具体的なコードを参考までに紹介します。具体的...

Linux は suid vim.basic ファイルを使用して権限昇格を実現します。

カリで再現まず、必要なvim.basicファイルにsuid権限を設定します。 chmod u+s /...

Windows で削除された MySQL 8.0.17 のルート アカウントとパスワードを回復する方法

少し前にSQLの独学を終え、MySQL 8.0.17をダウンロードしました。インストールして設定した...

MySQL ifnull のネスト使用手順

MySQL ifnull のネストされた使用ifnull をネストする方法があるかどうかオンラインで...

複数の古いプレーヤーの埋め込みコード

ウェブページに表示されるプレーヤーは、WMP/RealPlayer/Flash Player に過ぎ...