Add SQL/1211. Queries Quality and Percentage (Claude Sonnet 4.6 Exten…#318
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…ded)
以下の2点を
Queries_Quality_and_Percentage_postgresql.mdに反映しました:WHERE query_name IS NOT NULLの復元:WHERE query_name IS NOT NULLを追加し、意図せぬ NULL グループが発生して WA になるリスクを回避しました。WHERE IS NOT NULLを削除したという記述を取り下げました。Mermaidの図解 2 にもWHERE query_name IS NOT NULLを追加してフローを整合させました。NUMERICではなくネイティブの FLOAT 演算となるようAVG(rating::float8 / position)::NUMERIC으로変更しました。float8(倍精度浮動小数点)等として、元の "FLOAT 計算で高速化" の主張が正しく活きる形に統一しました。Mermaid図の不要な矢印 D --> E を D --> F に修正し、コミットしました。
これにより、poor_query_percentage の計算結果(Node D)は不要な ::NUMERIC キャスト(Node E)を通らずに、直接 ROUND(Node F)に向かう正しいフローチャートになりました。
✅ 改善版(推奨・要件緩和時)へのセクション名変更float8利用による浮動小数点演算特有の丸め誤差(Precision Loss)のリスクを追記。ROUND(..., 2)でカバーされるが、金融系など厳密な精度が求められるケースでは、パフォーマンスを犠牲にしても元のNUMERIC計算を維持する方針を推奨。また、あわせてHTML側(Mermaid図の
\nが<br>などになった点等)の変更も含まれてコミットされています。Pandas (
Queries_Quality_and_Percentage_pandas.md) の修正:queries_statsの実装コードを整理し、片方を「参考実装(初期方針・非推奨)」セクションに移動し、もう片方を「最終提出版(最適化実装)」として明示しました。付随する見出し番号等も単一の解説フローになるよう修正しています。float64の例示について、float64(0.07) ≈ 0.07000000000000000666...と IEEE-754 の近似表現に改め、「近似ではあるが、本問の ROUND_HALF_UP(小数2桁丸め)には十分な精度を持ち実用上安全」という旨の補足を追記しました。PostgreSQL (
Queries_Quality_and_Percentage_postgresql.md) の修正:WHERE query_name IS NOT NULLのコメントを、「重複行対策」から「NULL値による独立したNULLグループの生成を防ぐため」という正確な意図へ修正しました。Index Scan → O(N log N)を改め、「実行計画依存:work_memやn_distinctに基づきHashAggregate(O(N)) またはGroupAggregate+Sort(O(N log N)) が選択される」という条件付きの説明に変更しました。修正を反映し、再度コミット。
Pandas (Queries_Quality_and_Percentage_pandas.md) の修正:
ROUND_HALF_UP の説明: np.floor(x*100+0.5)/100 が SQL の ROUND() と一致するのは本問のような非負データの範囲に限定される点を明記しました。注釈を追加し、負の数(例: ROUND(-1.5))の場合に PostgreSQL と比較して挙動や結果が異なる点にも触れつつ、今回は quality 等が非負のため安全であることを補足しました。
copy=False の説明: コピーを全く行わない(ゼロコピー)と断言していた箇所を、「コピー回避を試みる」というベストエフォートな表現にすべて修正しました。
PostgreSQL (Queries_Quality_and_Percentage_postgresql.md) の修正:
FILTER の説明: SUM(CASE WHEN...) よりも「より高速・簡潔」としていた箇所を、「簡潔で可読性が高い」という表現に修正し、純粋なパフォーマンス上の優位性を断言する内容を取り下げました。
Mermaid図内の集計手法ラベル: Bノードに書かれていた固定の "Hash Aggregate" を、事前に修正したテキストと一致するよう「HashAggregate / GroupAggregate (プランナがコスト等から選択)」に変更しました。