首頁 > 資料庫 > mysql教程 > 如何在多列查詢中高效聚合單列?

如何在多列查詢中高效聚合單列?

Barbara Streisand
發布: 2024-12-20 07:46:10
原創
934 人瀏覽過

How Can I Efficiently Aggregate a Single Column in a Multi-Column Query?

聚合多列查詢中的單列

概述

將查詢中的單一欄位與許多其他欄位聚合可能是一個挑戰,尤其是當所有SELECT 和ORDER BY 欄位必須聚合或屬於GROUP BY 時。這種冗長的查詢結構管理起來很麻煩。

PostgreSQL 9.1 的簡化查詢

在 PostgreSQL 9.1 或更高版本中,有更簡單的解決方案。當使用主鍵作為GROUP BY 條件時,可以簡化查詢:

SELECT foo1, foo2, foo3, foo4, foo5, foo6, string_agg(aggregated_field, ', ')
FROM tbl1
GROUP BY 1  -- Group by primary key (foo1)
ORDER BY foo7, foo8;
登入後複製

多表查詢

對於涉及不同關係的多個表的查詢,先聚合資料會更有效率稍後再連接表:

SELECT t1.foo1, t1.foo2, ...,
     t2.bar1, t2.bar2, ...,
     a.aggregated_col
FROM tbl1 t1
LEFT JOIN tbl2 t2 ON ...
...
LEFT JOIN (
   SELECT some_id, string_agg(agg_col, ', ') AS aggregated_col
   FROM agg_tbl a ON ...
   GROUP BY some_id
   ) a ON a.some_id = ?.some_id
ORDER BY ...
登入後複製

透過分離聚合和連接,大部分查詢可以避免不必要的聚合,降低複雜度並提高表演。

以上是如何在多列查詢中高效聚合單列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板