mysqlは重複した名前と最も古い年齢を含むリストを検索します
mysql> select count(*) as count ,name,sum(age) as age from t1 group by name order by count desc;+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | atest | 64 || 2 | btest | 37 || 2 | ctest | 43 || 2 | dtest | 43 || 1 | mary | 22 || 1 | kou | 22 || 1 | perter | 23 || 1 | kate | 19 |+-------+--------+------+8 rows in set (0.00 sec)
ここで count の繰り返しデータを見つけます
次に、count が最も大きいデータ、最大で同じ年齢のデータを見つけます
mysql> select count,name,age from ( select count(*) as count ,name,sum(age) as age from t1 group by name order by count desc ,age desc ) as tmp group by count order by count desc ,age desc;+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | atest | 64 || 2 | ctest | 43 || 1 | perter | 23 |+-------+--------+------+3 rows in set (0.00 sec)
項目 dtest が 1 つ少ないのはなぜですか、 dtest と ctest のデータは count と ctest が同じです。年?
アドバイスをお願いします!ありがとうございます
ディスカッションに返信します
2 番目の式はカウントごとにグループ化されているため、同じカウントを持つものはグループ内に存在する必要があります。 dtest | 43 |
グループ内では、当然 1 つしか出現できません
したがって、グループ化条件に age を追加する必要があります。つまり、count,age でグループ化する必要があります
mysql> select count(*) as count ,name,sum(age) as age from t1 group by name order by count desc, ae desc ;+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | zx | 64 || 2 | xz | 43 || 2 | john | 43 || 2 | tom | 37 || 1 | perter | 23 || 1 | mary | 22 || 1 | kou | 22 || 1 | kate | 19 |+-------+--------+------+8 rows in set (0.00 sec)mysql> select count,name,age from ( select count(*) as count ,name,sum(age) as age from t1 group b name order by count desc ,age desc ) as tmp group by count,age order by count desc ,age desc;+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | zx | 64 || 2 | xz | 43 || 2 | tom | 37 || 1 | perter | 23 || 1 | mary | 22 || 1 | kate | 19 |+-------+--------+------+6 rows in set (0.00 sec)
この結果は間違っていますか?
期待される結果は次のようになります:
+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | atest | 64 || 2 | ctest | 43 || 2 | dtest | 43 || 1 | perter | 23 |+-------+--------+------+
select count,name,age from ( select count(*) as count ,name,sum(age) as age from t1 group b
name order by count desc ,age desc ) as tmp group by count, name order by count desc,age desc;
mysql> select count,name,age from ( select count(*) as count ,name,sum(age) as age from t1 group by name order by count desc ,age desc ) as tmp group by count,name order by count desc ,age desc;+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | zx | 64 || 2 | xz | 43 || 2 | john | 43 || 2 | tom | 37 || 1 | perter | 23 || 1 | kou | 22 || 1 | mary | 22 || 1 | kate | 19 |+-------+--------+------+8 rows in set (0.00 sec)
group by count,name この方法では、count=2 で最大の年齢のデータと count=1 で最大の年齢のデータを見つけることはできません。最大の年齢〜
+-------+--------+------+| count | name | age |+-------+--------+------+| 3 | atest | 64 || 2 | ctest | 43 || 2 | dtest | 43 || 1 | perter | 23 |+-------+--------+------+
この期待される結果は SQL ステートメントに反映できますか?
アドバイスお願いします
あまり効率的ではない気がしますが、できます
(select count,max(age) as age from ( select count(*) as count ,name,sum(age) as age from t1 group by name order by count desc ,age desc ) as tmp group by count order by count desc ,age desc) as tempd,( select count(*) as count ,name,sum(age) as age from t1 group by name order by count desc ,age desc ) as tmp1 where tmp1.count=tempd.count and tmp1.age=tempd.age count order by tempd.count desc ,tempd.age desc;
select tmp1.count,tmp1.age from (select count,max(age) as age from (select count (*) as count ,name,sum(age) as age from t1 group by
name order by count desc ,age desc ) as tmp group by count order by count desc ,age desc) as tempd,( select count(*) as count ,name ,sum(age) as age from t1 group by
name order by count desc ,age desc ) as tmp1 where tmp1.count=tempd.count および tmp1.age=tempd.age count order by tmp1.count desc ,tmp1.age desc;
モデレーターさん、ありがとうございます

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

ReactPhpの詳細な解釈の非ブロッキング機能の公式紹介は、多くの開発者の質問を呼び起こしました。
