ユーザーが、WHERE 句で COUNT(*) 関数を使用して MySQL のデータをフィルタリングしようとしたときに問題が発生しました。 WHERE句。彼らは、大量のリソースを消費する可能性があるため、ネストされた SELECT ステートメントを使用せずにこのタスクを達成する効率的な方法を探していました。
ユーザーは、望ましい結果を示すために次の疑似コードを提示しました:
SELECT DISTINCT gid FROM `gd` WHERE COUNT(*) > 10 ORDER BY lastupdated DESC
このアプローチの問題は、MySQL が WHERE 句で COUNT(*) などの集計関数をサポートしていないことです。この制限を回避するために、ユーザーは、ネストされた SELECT を使用して、一意の GID ごとに行数をカウントし、それに応じて結果をフィルター処理する可能性を検討しました。ただし、この方法は非効率的でリソースを大量に消費すると考えられていました。
幸いなことに、MySQL では、GROUP BY 句と HAVING 句を使用して、より最適化されたソリューションが提供されています。
SELECT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC
このクエリは次の手順を実行します。
GROUP BY 句と HAVING 句を活用することにより、このアプローチは、ネストされた SELECT ステートメントに頼ることなく、効果的に望ましい結果を達成し、パフォーマンスと効率が向上します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3