検索
ホームページデータベースmysql チュートリアルデータベース内の各グループの上部Nレコードを取得する方法は?

How to Retrieve the Top N Records for Each Group in a Database?

データベースをグループ化した後、各グループの最初の N レコードを取得します

データベース データはグループに編成されているため、各グループの上位 N 件のレコードを抽出する必要があります。これを行うには、次の戦略を使用できます:

UNION ALL メソッド:

UNION ALL 演算子を使用して、各グループの最初の N レコードを結合します。たとえば、2 つのグループがあり、各グループの最初の 2 つのレコードを取得したい場合は、次を使用できます:

(
  SELECT *
  FROM mytable
  WHERE `group` = 1
  ORDER BY age DESC
  LIMIT 2
)
UNION ALL
(
  SELECT *
  FROM mytable
  WHERE `group` = 2
  ORDER BY age DESC
  LIMIT 2
)

行番号メソッド:

次のクエリを使用して各レコードの行番号を生成します:

SELECT person, `group`, age,
      (@num:=IF(@group = `group`, @num +1, IF(@group := `group`, 1, 1))) row_number
FROM test t
CROSS JOIN (SELECT @num:=0, @group:=NULL) c
ORDER BY `Group`, Age DESC, person

このクエリは、グループ内の各レコードに行番号を割り当てます。次に、結果をフィルタリングして、行番号が N 以下のレコードのみを取得できます:

SELECT person, `group`, age
FROM
(
   ... (上述查询) ...
) AS x
WHERE x.row_number <= N

その他の方法:

この記事で言及されている xaprb の記事では、この結果を達成するための次のような他の方法が提供されています。

  • サブクエリまたは相関サブクエリを使用する
  • ストアド プロシージャを使用する
  • ウィンドウ関数を使用する (サポートされているデータベースの場合)

最適なアプローチは、特定のデータベース システムとパフォーマンス要件によって異なります。

以上がデータベース内の各グループの上部Nレコードを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
mysql blob:制限はありますか?mysql blob:制限はありますか?May 08, 2025 am 12:22 AM

mysqlblobshavelimits:tinyblob(255bytes)、blob(65,535bytes)、mediumblob(16,777,215bytes)、andlongblob(4,294,967,295bytes).tousebl難易度:1)PROFFORMANCESANDSTORERGEBLOBSEXTERNALLY;

MySQL:ユーザーの作成を自動化するための最良のツールは何ですか?MySQL:ユーザーの作成を自動化するための最良のツールは何ですか?May 08, 2025 am 12:22 AM

MySQLでユーザーの作成を自動化するための最良のツールとテクノロジーには、次のものがあります。1。MySQLWorkBench、中小サイズの環境に適した、使いやすいがリソース消費量が高い。 2。アンシブル、マルチサーバー環境に適した、シンプルだが急な学習曲線。 3.カスタムPythonスクリプト、柔軟性がありますが、スクリプトセキュリティを確保する必要があります。 4。大規模な環境に適した人形とシェフ、複雑ですがスケーラブル。選択する際には、スケール、学習曲線、統合のニーズを考慮する必要があります。

mysql:blob内で検索できますか?mysql:blob内で検索できますか?May 08, 2025 am 12:20 AM

はい、youcansearchinsideablobinmysqlusingspecifictechniques.1)converttheblobtoautf-8stringwithconvert function andsearchusinglike.2)

MySQL文字列データ型:包括的なガイドMySQL文字列データ型:包括的なガイドMay 08, 2025 am 12:14 AM

mysqloffersvariousstringdatypes:1)charfofixed-lengthstrings、italforconsentlengtalikecountrycodes; 2)varcharforvariable-lengthstrings、適切なForfieldslikenames;

MySQLブロブのマスター:ステップバイステップのチュートリアルMySQLブロブのマスター:ステップバイステップのチュートリアルMay 08, 2025 am 12:01 AM

tomastermysqlblobs、soflowthesesteps:1)shoseetheapsosupturateblobtype(tinyblob、blob、mediumblob、longblob)basedOndatasize.2)insertDatausingload_fileforefficiency.3)storefilereferenceinsinsteadoffilestoimpeperformance.4)

MySQLのBLOBデータ型:開発者の詳細な概要MySQLのBLOBデータ型:開発者の詳細な概要May 07, 2025 pm 05:41 PM

blobdatatypesinmysqlareusedlarginglaredatalikeimagesorudio.1)useblobtypes(tinyblobtolongblob)Basedatasizeneeds。 2)storeblobsin perplate petooptimize performance.3)scondididididididididersxternalストレージBlob Romanaデータベースindimprovebackupe

コマンドラインからMySQLにユーザーを追加する方法コマンドラインからMySQLにユーザーを追加する方法May 07, 2025 pm 05:01 PM

toadduserstomysqlfromthecommandline、loginasroot、thenusecreateuser'username '@' host'ident'ident'identifidedby'password '; tocreateanewuser.grantpermissions with grantpermissions with grantalgegesondatabase

mysqlの文字列データ型は何ですか?詳細な概要mysqlの文字列データ型は何ですか?詳細な概要May 07, 2025 pm 03:33 PM

mysqlofferseightStringDatatypes:char、varchar、binary、varbinary、blob、text、enum、andset.1)charisfixed-length、yealforconsistent datalikecountrycodes.2)varcharisvariable length、efficational forvaryingdatalikenames.3)binaryandvanterbinarydata a similati

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター