基于COL2分组的MYSQL Col1 Sum

标签 mysql

我正在查询 Wordpress postmeta 表以尝试按客户提取一些销售信息。我怎样才能让客户组合在一起。这里的挑战是所有数据都在 postmeta 表中。

这是我迄今为止不成功的尝试:

SELECT CONCAT_WS(" ", metaA.meta_value, metaB.meta_value) AS customer_name, metaC.meta_value AS 'Total'
FROM wp_postmeta AS metaA
JOIN wp_postmeta AS metaB USING (post_id)
JOIN wp_postmeta AS metaC USING (post_id)
WHERE (metaA.meta_key = '_billing_first_name')
AND (metaB.meta_key = '_billing_last_name')
AND (metaC.meta_key = '_order_total')
GROUP BY metaA.meta_value, metaB.meta_value, metaC.meta_value

结果:

+---------------+---------+
| customer_name |  Total  |
+---------------+---------+
|     customer1 |      10 |
|     customer1 |      50 |
|     customer1 |      90 |
|     customer2 |      40 |
|     customer3 |      10 |
|     customer3 |      10 |
|     customer4 |      20 |
+---------------+---------+

我想得到:

+---------------+---------+
| customer_name |  Total  |
+---------------+---------+
|     customer1 |     150 |
|     customer2 |      40 |
|     customer3 |      20 |
|     customer4 |      20 |
+---------------+---------+

最佳答案

您需要按串联的客户名称进行分组并对 metaC.meta_value 求和:

SELECT CONCAT_WS(" ", metaA.meta_value, metaB.meta_value) AS customer_name, sum(metaC.meta_value) AS 'Total'
FROM wp_postmeta AS metaA
JOIN wp_postmeta AS metaB USING (post_id)
JOIN wp_postmeta AS metaC USING (post_id)
WHERE (metaA.meta_key = '_billing_first_name')
    AND (metaB.meta_key = '_billing_last_name')
    AND (metaC.meta_key = '_order_total')
GROUP BY CONCAT_WS(" ", metaA.meta_value, metaB.meta_value)

关于基于COL2分组的MYSQL Col1 Sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43971996/

相关文章:

php - 将用户分配到我的 PHP 应用程序中的多个项目,最佳方法?

mysql - 在一个 SQL 中返回父级 3 层深度

php - 如何从一个mysql表的日期时间字段中仅获取日期,合并相似的日期并通过cron作业更新另一个表

mysql - MySQL 是否两次计算相同的 SUM?

php - 避免在插入手动递增的收据编号时发生冲突

mysql - 如何添加引用同一个表的主键的外键约束(自引用)

php - 使用PHP形式将数据输入MySQL数据库

mysql dump - 排除一些表数据和无数据

mysql - SQL for ids from same table with relation defined in another table

mysql - 错误无法在组件 :Sonar Exception? 上保存公制 pdf 数据的度量