wea*_*nfo 3 mysql sql sum aggregate-functions left-join
我正在尝试按 ward_name 进行分组,这是我唯一需要分组的内容,但我收到此错误:
\ #1055 - SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含非聚合列“osunemonitor.r.entry_date”,该列在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by 不兼容
在我的查询中,如何使其仅分组ward_name?
我的查询:
SELECT
pu.pu_ward_name,
entry_date,
pu.o_code,
pu.pu_ward_name,
pu.pu_lga_name,
pu.pu_code,
pu.pu_ward_code,
pu.pu_lga_code,
pu.pu_voters_reg_count,
SUM(total_vote_cast) AS total_vote_cast,
SUM(apc_total_vote) AS apc_total_vote,
SUM(pdp_total_vote) AS pdp_total_vote,
SUM(adp) AS adp, ward_name
FROM
post_election_info r
LEFT JOIN polling_unit pu ON r.ward_name = pu.pu_ward_name
WHERE lga_name = 'BORIPE'
GROUP BY
pu.pu_ward_name
Run Code Online (Sandbox Code Playgroud)
每个非聚合列都必须出现在GROUP BY子句中。这是 ANSI SQL 中的一个标准,尽管古代版本的 MySQL 曾经对此很宽松。
想一想:如果您有SELECT一个列但没有GROUP BY这样做,RDBMS 将如何可靠地选择应显示组中的哪个值?
可能的解决方案包括:
GROUP BY中pu_ward_name。例如,MAX() 和 MIN() 是字符串友好的(与 SUM() 不同)。第一个解决方案:
SELECT
pu.pu_ward_name,
entry_date,
pu.o_code,
pu.pu_lga_name,
pu.pu_code,
pu.pu_ward_code,
pu.pu_lga_code,
pu.pu_voters_reg_count,
SUM(total_vote_cast) AS total_vote_cast,
SUM(apc_total_vote) AS apc_total_vote,
SUM(pdp_total_vote) AS pdp_total_vote,
SUM(adp) AS adp
FROM
post_election_info r
LEFT JOIN polling_unit pu ON r.ward_name = pu.pu_ward_name
WHERE lga_name = 'BORIPE'
GROUP BY
pu.pu_ward_name,
entry_date,
pu.o_code,
pu.pu_lga_name,
pu.pu_code,
pu.pu_ward_code,
pu.pu_lga_code,
pu.pu_voters_reg_count
Run Code Online (Sandbox Code Playgroud)
第二个解决方案:
SELECT
pu.pu_ward_name,
MAX(entry_date) AS entry_date,
MAX(pu.o_code) AS o_code,
MAX(pu.pu_lga_name) AS pu_lga_name,
MAX(pu.pu_code) AS pu_code,
MAX(pu.pu_ward_code) AS pu_ward_code,
MAX(pu.pu_lga_code) AS pu_lga_code,
MAX(pu.pu_voters_reg_count) AS pu_voters_reg_count,
SUM(total_vote_cast) AS total_vote_cast,
SUM(apc_total_vote) AS apc_total_vote,
SUM(pdp_total_vote) AS pdp_total_vote,
SUM(adp) AS adp
FROM
post_election_info r
LEFT JOIN polling_unit pu ON r.ward_name = pu.pu_ward_name
WHERE lga_name = 'BORIPE'
GROUP BY
pu.pu_ward_name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16820 次 |
| 最近记录: |