【发布时间】:2021-11-12 09:36:21
【问题描述】:
我有一个名为 textbankvendor.messages_export 的 sql 数据库,其中包含从从事文字营销活动的组织发送的所有消息。
我正在使用的这个数据库中的相关列如下:
activity_title (varchar):单个消息所属的文本库的名称
message_segments(整数):一条消息中的段数(一个段是160个字符的分组)
activity_published_at(时间戳):文本库的发布日期
因此,数据库中的几行示例如下:
| activity_title | message_segments | activity published at |
|---|---|---|
| March Outreach Textbank | 3 | 2021-03-18 20:32:00.045294 |
| April Outreach Texbank | 4 | 2021-04-22 18:27:00.045294 |
| March Outreach Textbank | 3 | 2021-03-18 20:32:00.045294 |
| April Outreach Textbank | 4 | 2021-04-22 18:27:00.045294 |
我的目标是输出数据库中所有唯一的文本库以及为该文本库中的所有消息发送的总消息段以及该文本库的发布日期。使用上面的例子,目标是这样的:
| activity_title | cumulative_message_segments | activity published at |
|---|---|---|
| March Outreach Textbank | 6 | 2021-03-18 20:32:00.045294 |
| April Outreach Texbank | 8 | 2021-04-22 18:27:00.045294 |
我能够成功使用以下查询来获取活动标题和消息段数:
SELECT
activity_title
, SUM (message_segments) AS "cumulative_message_segments"
FROM textbankvendor.messages_export
GROUP BY 1
ORDER BY 1
但是,当尝试将 activity_published_at 作为变量时,我遇到了错误消息。以下查询给出(以及试错的几种变体/调整)给出错误消息:
SELECT
activity_title
, SUM (message_segments) AS "cumulative_message_segments"
, activity_published_at
FROM textbankvendor.messages_export
GROUP BY 1
ORDER BY 1
状态:失败
SQL 中的错误:列“messages_export.activity_published_at”必须出现在 GROUP BY 子句中或用于聚合函数中
有没有办法成功查询到这个预期的结果?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。