MySql Sum with Case 查询输出另一个表

标签 mysql

我有一个像这样的表table1。

    +---------+-------+
    | name    | Value | 
    +---------+-------+
    |       a | 1     | 
    |       b | 3     |
    |       a | 1     |
    |       d | 4     |
    |       c | 4     |
    |       d | 2     |
    +---------+-------+

我需要创建另一个表,该表具有不同的名称以及其名称与上一个表相同的值的总和,如下所示..

+---------+-------+
| name    | Value | 
+---------+-------+
|       a | 2     | 
|       b | 3     |
|       c | 4     |
|       d | 6     |
+---------+-------+

我已经尝试过查询

SELECT Distinct t1.name, SUM (Case when t1.Name = t2.Name then t1.Value end) 
from table1 t1 join table1 t2 

这似乎不起作用。

我正在使用 C# 构建一个桌面应用程序来访问输出表中的这些值,并且只需使用 linq 而不是服务器端查询,我就可以轻松获得所需的结果。让桌面应用程序实现此目的而不是在数据库中创建表是一个好的做法吗?

最佳答案

你可以简单地尝试一下

select name, sum(Value)
from yourtable
group by name

<强> Sql Fiddle Demo

关于MySql Sum with Case 查询输出另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35147851/

相关文章:

PHP/Mysql 项目

php - 我试图让我的 "Details"页面引用我的服务器的两个独立部分,它们通过 techID 链接

要格式化的 SQL 列

mysql - Flyway数据导入仅适用于MySQL,不适用于H2

mysql - 通过联接、全表扫描提高查询性能

php - 注意第 2 行的 : Undefined index: name in C:\Users\. .\logged_in.php

PHP 不显示错误行

mysql - 在主查询中使用子查询

Mysql 密码过期,使用 Homestead Virtualbox

PHP/MySQL - while 循环只显示最新输入的记录