mysql - MySQL中最小日期的提取量
问题描述
我已经在 Postgres 中的最短日期的 Extract amount 中向PostgreSQL 提出了这个问题。本质上,我需要获取每个帐户的最短日期的金额。我试过了
SELECT B.* FROM
(SELECT amount, account, min(date)
FROM new_schema.stg_payment_mysql GROUP BY account
) A INNER JOIN new_schema.stg_payment_mysql B USING (account,date)
但得到'错误代码:1054。'from 子句'0.781 sec'中的未知列'date'。
如果我在日期之前添加 new_schema.stg_payment_mysql,我会得到“错误代码:1064”。
我也试过:
SELECT amount, account, min(date) date
FROM new_schema.stg_payment_mysql GROUB BY account
但金额选择不正确。我觉得第一个查询是正确的,但我不明白错误。
解决方案
第一个查询几乎是正确的。你忘了给你的 min(date) 起别名
SELECT B.*
FROM
(
SELECT account, min(`date`) as mindate
FROM new_schema.stg_payment_mysql
GROUP BY account
) A
INNER JOIN
new_schema.stg_payment_mysql B
ON a.account = b.account and b.`date` = a.mindate
我将 date 重命名为 mindate 有两个原因 - 一是避免将列命名为保留字,二是为了更清楚地了解数据流是什么以及查询是如何工作的
您也不需要在A中选择金额;它将来自 b
推荐阅读
- lasso-regression - hierNet 用于生存数据
- php - 如何在 laravel 8 中使用 json web token (jwt) 进行多重身份验证?
- google-cloud-platform - Google Cloud Vision API 对象检测模型在 Raspberry Pi 上出现总线错误
- gtsummary - 将 tbl_summary 中的频率和百分比拆分为两个单独的列
- python - 合并后python pandas更改顺序和列名
- apache-flink - Apache Flink 在 UI 中显示自定义指标,但普罗米修斯指标报告器没有抓取它们
- laravel - Laravel:如何保存到两个表中,但是,第一个表的 id 将作为外部 id 保存到第二个表中
- c++ - 子聚合的指定初始化器是否需要花括号?
- clickhouse - 获取 ClickHouse 表前 n 行的校验和(cityHash64)
- blazor - 有什么方法可以禁止组件使用“ShouldRender”进行渲染,但允许其子组件在他们认为合适的时候重新渲染?