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 で at および cron スケジュールタスクをカスタマイズする方法

Linux システムには 2 種類のスケジュールされたタスクがあります。1 つは 1 回だけ実行され...

JSX を使用してカルーセル コンポーネントを実装する方法 (フロントエンドのコンポーネント化)

JSX を使用してコンポーネント システムを構築する前に、例を使用してコンポーネントの実装原理とロ...

Vue3 シングルファイルコンポーネントのスタイル機能の詳細な説明

目次スタイルスコープスタイルモジュール状態駆動型動的CSS要約するスタイルスコープ注意事項:スタイル...

MySQL サーバー ログイン エラー ERROR 1820 (HY000) の解決方法

障害サイト: MySQL サーバーにログインし、どのコマンドを実行してもこのエラーが発生します my...

MySQLクエリ条件におけるonとwhereの配置の違いの分析

導入今日SQLを書いているときに、問題が発生しました。要件は、データを照会し、スコアと過去 1 週間...

JavaScript Domはカルーセルの原理と例を実装します

カルーセルを作りたい場合、まずその原理を理解する必要があります。画像を右から左にスライドさせるにはど...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

tinyMCEの使い方と体験の詳細な説明

tinyMCE の使用方法の詳細な説明初期化TinyMCE を初期化するときは、ページの HEAD ...

ネイティブ js カプセル化シームレスカルーセル機能

ネイティブjsカプセル化シームレスカルーセルプラグイン、参考までに、具体的な内容は次のとおりです。例...

JavaScriptは、マウスが通過したときにドロップダウンボックスを表示するように実装します。

この記事では、マウスがドロップダウンボックスの上を通過するときにドロップダウンボックスを表示するため...

Vueルーティング相対パスジャンプメソッド

目次Vueルーティング相対パスジャンプ1. 属性の追加2.router.resolveメソッドVue...

CentOS はローカル yum ソースを使用して LAMP 環境を構築するグラフィック チュートリアル

この記事では、ローカル yum ソースを使用して CentOS 上に LAMP 環境を構築する方法に...

HTML の基本 - CSS スタイルシート、スタイル属性、フォーマット、レイアウトの詳細

1.位置:固定一部の Web サイトの右下隅にあるポップアップ ウィンドウなどの、ブラウザーを基準と...

...

ドメイン名、ポート、IPに基づいてnginx仮想ホストを構築する

nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...