gpt4 book ai didi

mysql - SQLQuery 列被 1's instead of 0' 填充

转载 作者:行者123 更新时间:2023-11-29 13:39:12 25 4
gpt4 key购买 nike

请考虑以下代码进行测试:

CREATE TABLE Mydatabase(
TableID_bi int,
EVENTS VARCHAR(200),
email VARCHAR(200),
Timedetail DATETIME
);

INSERT INTO `Mydatabase` (`TableID_bi`,`EVENTS`, `email`, `Timedetail`) VALUES
(1, 'first','email@gmail.com','2013-06-15' ),
(2, 'first','email2@gmail.com', '2013-06-15'),
(3, 'second','email3@gmail.com', '2013-06-15'),
(4, 'second','email4@gmail.com', '2013-06-15'),
(5, 'third','email5@gmail.com', '2013-06-15');

简要描述我对代码所做的事情:

我为每个连接创建了一个 View ,即第一、第二、第三等,如下所示如下:(我没有选择 UNION 来组合所有查询的原因是因为我希望结果按列而不是按行显示。)

create view firstview as 
SELECT DATE(Timedetail) as Datefield1 ,
count(Timedetail) as firstoccurances,
Events
FROM Mydatabase
WHERE Events = "first" GROUP BY Datefield1 ;

第二个、第三个和所有其他事件也类似。

以下是我从 View 中检索结果的方法:

SELECT a.Datefield1
a.firstoccurances,
b.secondoccurances,
c.thirdoccurances

FROM firstview a,
secondview b,
thirdview c

WHERE a.Datefield1 = b.Datefield2
AND a.Datefield1 = c.Datefield3

有关数据库中发生的情况的简要描述:

我正在开发一个与上面提到的同类的大型数据库。例如,我从数据库中选择了以下日期范围:2013-07-01 到2013-08-01

现在,就第一个和第二个事件而言,我在“事件”列下为每个日期列出了“第一个”和“第二个”值。成为更准确地说,如果我使用 COUNT() 函数测试它,我可以看到如下结果:

对于第一次连接:

TimeDetail  |  Number of first events
2013-07-01 4
2013-07-02 2
2013-07-03 6
and so on

2013-08-01 5

第二个事件的情况也是如此。但是,对于“第三个”事件,情况并不相同。我在“事件”列下列出了“第三个”事件,仅列出了几个日期,例如 2013-07-02 和 2013-07-03,我应该看到以下输出:

TimeDetail  |  Number of third events
2013-07-01 0
2013-07-02 1
2013-07-03 2
and so on

2013-08-01 0

但是我没有得到上面的输出。相反,除了 2013-07-02 和 2013-07-03 之外的所有其他日期值都在“第三个数”下填充值 1事件栏。我可以知道为什么吗?

最佳答案

我不能假装我理解这个问题,但这可能是解决方案......

SELECT timedetail
, SUM(CASE WHEN events = 'first' THEN 1 ELSE 0 END) first
, SUM(CASE WHEN events = 'second' THEN 1 ELSE 0 END) second
, SUM(CASE WHEN events = 'third' THEN 1 ELSE 0 END) third
FROM mydatabase
GROUP
BY timedetail;

关于mysql - SQLQuery 列被 1's instead of 0' 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18333472/

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