java - 如何根据在 mysql 中该行上使用 sum(1) 接收到的数据创建一个新列

标签 java mysql

我有一个查询,我正在获取该行的计数,但我试图根据两个条件接收计数,但我得到的输出在两个条件下都在一行中。我想获得另一个新列对于第二个条件类似于我的第一个条件。我的查询如下

SELECT 
    SUM(1) AS Usercount, feild
FROM
    (SELECT 
        *
    FROM
        (SELECT 
        id,
            GROUP_CONCAT(DISTINCT code) AS feild
    FROM
        table
    WHERE
        type = 'Usercount' and code = 001
            AND locId IN (SELECT 
                id
            FROM
                location
            WHERE
                id IN (1) AND status = 1)
    GROUP BY id) AS deptdata
    WHERE
        feild NOT LIKE '%,%') AS Data
GROUP BY feild 
UNION SELECT 
    SUM(1) AS EmployeeCount, feild
FROM
    (SELECT 
        *
    FROM
        (SELECT 
        id,
            GROUP_CONCAT(DISTINCT code) AS feild
    FROM
        table
    WHERE
        type = 'EmployeeCount' and code = 001
            AND locId IN (SELECT 
                id
            FROM
                location
            WHERE
                id IN (1) AND status = 1)
    GROUP BY id) AS deptdata
    WHERE
        feild NOT LIKE '%,%') AS Data
GROUP BY feild 

执行此操作后,我得到两列,第一列用于 UserCount,第二列用于代码。即

Usercount Code
3         001

但我希望输出为

UserCount EmployeeCount  Code
3              2          001

最佳答案

您可以尝试以下方式 - 使用条件聚合

select feild,
       count(case when type='Usecount' then 1 end) as UserCount,
       count(case when type='EmployeeCount' then 1 end) as EmployeeCount
from
(
SELECT id,type,GROUP_CONCAT(DISTINCT code) AS feild
FROM table
    WHERE code = 001
            AND locId IN (SELECT 
                id
            FROM
                location
            WHERE
                id IN (1) AND status = 1)
GROUP BY id,type
)A where feild NOT LIKE '%,%' group by feild

关于java - 如何根据在 mysql 中该行上使用 sum(1) 接收到的数据创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58762276/

相关文章:

java - Spring 。将字符串值从 View 传递到模型中的 int/Integer 参数

java - 将数据按组存储到 map 中

PHP 重置 $POST 值并列出所有结果

sql - mysql : Count Posts and Group by date

php - 如何在另一个更新查询中更新新表?

mysql - 错误代码 1242 : Subquery retuens more than 1 row

java - 获取特定迭代下的所有任务(符合条件)?

java - Android手机不会显示 map (只有空白 map )

java - 如何在 JavaScript 中循环遍历 Java List<Object[]> 对象?

php - 货币 SQL 数据结构