mysql - 按格式化字符串分组的 SQL 联合

标签 mysql sql metabase

我正在尝试对 2 个不同表中的 2 列进行求和,并按格式化字符串进行分组和排序。

架构要点是这样的:

Table A:
* Created At
* Amount Charged

Table B:
* Created At
* Cash Amount

请注意,它们共享一个名为“创建于”的列名称,但对于我要总结的内容具有不同的列名称。

我想要一个结果,表明 1 月份,表 A 收取的金额 + 表 B 现金金额的总和为 x,对于 2 月份,依此类推。

以下是我设置日期格式的方法:

str_to_date(concat(date_format(created_at, '%Y-%m'), '-01')

最佳答案

您可以使用UNION ALL:

SELECT str_to_date(concat(date_format(created_at, '%Y-%m'), '-01'), SUM(sub.c)
FROM (SELECT created_at, Amount AS c
      FROM tabA
      UNION ALL 
      SELECT created_at, Cash
      FROM tabB) sub
GROUP BY str_to_date(concat(date_format(created_at, '%Y-%m'), '-01');

我将替换 str_to_date(concat(date_format(created_at, '%Y-%m'), '-01')EXTRACT(YEAR_MONTH FROMcreated_at)

关于mysql - 按格式化字符串分组的 SQL 联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50920720/

相关文章:

SQL - 根据列值选择行

mysql - 这种 SQL 字符串格式化方法对于代码注入(inject)是否完全安全?

mongodb - 在 mongodb 聚合框架中展开字典值

php - MySQLI插入不起作用不插入被阻止的IP

PHP fatal error : Uncaught exception 'PDOException' with message 'SQLSTATE[42000]

mysql - MYSQL 中的空绑定(bind)变量

java - 将元数据库连接到 SQL Server

mysql - 如何提高 MyISAM 中 INSERT/UPDATE 查询的性能

php - MySql 语句中奇怪的 'where 1970 and' 子句

amazon-redshift - 元数据库 - 如何从 queryHash 中查找问题 ID 或仪表板 ID