我正在try 用两个不同的WHERE子句来计算一个事件的发生次数.我希望最终结果列并排显示.最后,对于每个计数,我需要从另一个表中获取一个显示名称列.我想在一个查询中完成所有这些.

EDIT个 将GROUPING变量更改为Table1.Column1(因为它是名称而不是ID,所以它是等价的,但两者都应该是唯一的.

SELECT table1.column1, COUNT(DISTINCT table2.column1) AS newcolumn1
FROM table2
LEFT JOIN table1 ON (table1.column2 = table2.column2)
WHERE table2.column3 != 'var1'
GROUP BY table1.column1
UNION ALL
SELECT table1.column1, COUNT(DISTINCT table2.column1) AS newcolumn2
FROM table2
LEFT JOIN table1 ON (table1.column2 = table2.column2)
WHERE table2.column3 = 'var2'
GROUP BY table1.column1

这在某种程度上是我想要的,但它堆叠了列,而不是并排显示它们.最终的游戏是有一个列是新列1和新列2的比率.不幸的是,这是我所能做到的最远的距离.

推荐答案

您可以try 使用分离的左连接而不是联合

    select table1.column1, tvar1.newcolumn1, tvar2.newcolumn2 
    from table1 
    left join (
        SELECT table1.column1, COUNT(DISTINCT table2.column1) AS newcolumn1
        FROM table2
        LEFT JOIN table1 ON (table1.column2 = table2.column2)
        WHERE table2.column3 = 'var1'
        GROUP BY table1.column1
    ) tvar1 on tvar1.column1 = table1.column1
    left join  (

        SELECT table1.column1, COUNT(DISTINCT table2.column1) AS newcolumn2
        FROM table2
        LEFT JOIN table1 ON (table1.column2 = table2.column2)
        WHERE table2.column3 = 'var2'
        GROUP BY table1.column1
    ) tvar2 on tvar2.column1 = table1.column1

Mysql相关问答推荐

在mySQL中使用子查询和WHERE子句的JOIN

如何获得表中只有最大值行的一个列被另一个列分区?

将值代入子查询

使用MySQL工作台导出具有数据的数据库表并导入到其字段具有不同数据类型的同一表中

MySQL多次联接同一个表使计数变得奇怪

MySQL全文索引和不区分大小写搜索带来的挑战

返回包含某一列的分组最大值的行,说明列中的重复值

使用Check查看过go 两个月是否完成了IRM Meetup

Mysql:使用like Select 查询

根据 MySql 中同一表中的多列 Select 多列

MySQL 可以用于将列表排序为三分之三吗?

MySql SELECT 查找包含数字的区间的时间复杂度是多少?

高效的 SQL 查询,用于计算半小时时间序列中已发生的行的一部分

try 在 .map 中使用 Favorite 选项卡进行react .我无法更改 mysql 表上的布尔类型

分别针对每个不同的列 Select 聚合

如何在 MySQL 中删除具有 2 列作为复合主键的多行?

这是将表单数据插入 MySQL 数据库的安全方法吗?

MySQL中的行值增加和减少1

SQL WHERE 列 = 一切

如何允许 django 管理员将字段设置为 NULL?