gpt4 book ai didi

mysql - 在同一张 table 上显示相反的结果

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:13 27 4
gpt4 key购买 nike

我正在尝试执行一个查询来完成我已有的两个查询的工作。让我稍微解释一下。

查询 1

select count(*) as equal, someField from table where field1 = field2 group by someField;

查询 1 的结果

-----------------
|equal|someField|
-----------------
| 90 | some1 |
| 45 | some2 |
-----------------

查询 2

select count(*) as different, someField from table where field1 != field2 group by someField;

注意 !=,这是与 Query 1 的唯一区别(当然还有 count off 的别名)。

查询 2 的结果

---------------------
|different|someField|
---------------------
| 10 | some1 |
| 55 | some2 |
---------------------

所以我最终得到了两个结果,但在单个查询中获得相同的数据会很好。

预期结果

---------------------------
|equal|different|someField|
---------------------------
| 90 | 10 | some1 |
| 45 | 55 | some2 |
---------------------------

我通常会尝试很多事情,直到找到预期的结果,但在这里我不知道如何开始。

编辑

我会尝试@Rahul 回答并得到这个结果:

select 
count(case when field1 = field2 then 1 else 0 end) as equal,
count(case when field1 != field2 then 1 else 0 end) as different,
someField
from table
group by someField;

---------------------------
|equal|different|someField|
---------------------------
| 100 | 100 | some1 |
| 100 | 100 | some2 |
---------------------------

最佳答案

使用 CASE 语句来实现相同的效果,如下所示

select 
sum(case when field1 = field2 then 1 else 0 end) as equal,
sum(case when field1 != field2 then 1 else 0 end) as different,
someField
from table
group by someField;

关于mysql - 在同一张 table 上显示相反的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31734971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com