Mysql がデータをグループ化し、最新のデータを抽出する方法についての詳細な説明

黄舟
リリース: 2019-02-22 16:29:20
オリジナル
7572 人が閲覧しました

質問と同様に、私もインターネット上で関連する解決策を探しましたが、その答えの多くは次の SQL ステートメントのようなものです:

select Id,Ac
count
Id,Mark,max(Create
Time
) as Latest from AccountMark as b group by AccountId
ログイン後にコピー

関連する mysql ビデオ チュートリアルをお勧めします: "mysql チュートリアル"

Max を使用してください。 機能。しかし、私が見つけたデータには何か問題があるようです。図に示すように、強調表示されたデータでは、Mark フィールドと CreateTime フィールドがまったく対応していません。

何が起こっているのですか? Max 関数を使用した後に をグループ化することは信頼できますか? 別のステートメントがあります:

select *,COUNT(AccountId) as Num from 
(select * from AccountMark order by CreateTime desc) `temp`  
group by AccountId order by CreateTime desc
ログイン後にコピー

この方法で見つかったデータは正しいです


しかし、
viewを作成する必要があり、Mysqlのビューではquery句は許可されていません。句が出現せずに正しいデータを検出できる SQL ステートメントを誰かが提供してもらえますか?ありがとう!

解決策:

select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
and b.CreateTime<CreateTime )
ログイン後にコピー

以上がMysql がデータをグループ化し、最新のデータを抽出する方法についての詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート