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

推薦する

同じ日の最初の3つのデータを取得するためのMySQLタイムラインデータ

テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...

CocosCreator で物理エンジン ジョイントを使用する方法

目次マウスジョイント マウスジョイント距離ジョイント距離ジョイントモータージョイント直動ジョイント変...

DELL R730 サーバーの構成 RAID とインストール サーバー システムとドメイン制御の詳細なグラフィック チュートリアル

最近、会社で DELL R730 サーバーを購入したのですが、偶然次のチュートリアルを見つけたので、...

CSS アニメーション プロパティの使用方法とサンプル コード (transition/transform/animation)

開発中、優れたユーザー インターフェイスには常にいくつかのアニメーションが組み込まれます。 CSS ...

Vue3とElectronを使ったデスクトップアプリケーションの詳しい説明

目次Vue CLIはVueプロジェクトを構築しますVue プロジェクトをマークダウン エディターに変...

MySQL のダウンロードとインストールの詳細グラフィックチュートリアル

1. MySQLデータベースをダウンロードするには、公式Webサイトにアクセスしてください:http...

mysql bin-log ログファイルを sql ファイルに変換する方法

mysqlbinlogのバージョンを表示mysqlbinlog -V [--version] bin...

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

CSSレイアウトにおけるフロート属性と位置属性の違い

CSS レイアウト - position プロパティposition 属性は、要素に適用する配置方法...

LinuxでHomebrewを使用する正しい方法

多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...

XHTMLタグは適切に使用する必要があります

<br />123WORDPRESS.COM の以前のチュートリアルでは、Web ページ...

jsは前のページに戻り、コードを更新します

1. Javascript は前のページ history.go(-1) に戻り、2 つのページを返し...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

MySQL テーブル名の大文字と小文字の選択

目次1. 大文字と小文字の区別を決定するパラメータ2. パラメータ変更に関する注意事項要約: 1. ...

HTML doctype の役割の紹介

ドキュメント モードには次の 2 つの機能があります。 1. HTML文書を解析するためにどのHTM...