Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从一个表中获取一列的计数,并在另一个表中获取匹配的相同列的计数_Mysql - Fatal编程技术网

Mysql 从一个表中获取一列的计数,并在另一个表中获取匹配的相同列的计数

Mysql 从一个表中获取一列的计数,并在另一个表中获取匹配的相同列的计数,mysql,Mysql,我有两张桌子,如下所示 table 1: raw    dateCol id 1 01.01.2001 00:00:00 AAPL 2 02.01.2001 00:00:00 MSFT 3 03.01.2001 00:00:00 INFY table 2: universe udateCol uid 1 01.01.2001 00:00:00 AAPL 2 02.01.2001 00:00:00 GOOGL 3 03.01.2001 00

我有两张桌子,如下所示

    table 1: raw
    dateCol id
1   01.01.2001 00:00:00 AAPL
2   02.01.2001 00:00:00 MSFT
3   03.01.2001 00:00:00 INFY

    table 2: universe
    udateCol    uid
1   01.01.2001 00:00:00 AAPL
2   02.01.2001 00:00:00 GOOGL
3   03.01.2001 00:00:00 INFY
我想从原始数据中提取ID计数,并从与universe中UID的原始匹配中提取ID计数。因此,我在Mysql中尝试了以下查询:

select universe.udateCol, count(raw.id) as rawCount, count(universe.uid) as uniCount from universe left join raw on universe.udateCol = raw.dateCol AND raw.id = universe.uid group by universe.udateCol order by universe.udateCol;
使用上面的查询,我得到以下输出

    udateCol    rawCount    uniCount
1   01.01.2001 00:00:00 1   1
2   02.01.2001 00:00:00 0   1
3   03.01.2001 00:00:00 1   1
但我希望输出像:

    udateCol    rawCount    uniCount
1   01.01.2001 00:00:00 1   1
2   02.01.2001 00:00:00 1   0
3   03.01.2001 00:00:00 1   1
如果有人想现场检查,那么可以检查

编辑1:

我想获得每个日期的原始表中存在的计数,以及在同一日期宇宙表中匹配的计数

SELECT DATE(A.dateCol) dateCol, COUNT(A.id) rawCount, COUNT(B.id) uniCount
FROM raw A LEFT JOIN universe B
ON A.id=B.uid AND DATE(A.dateCol)=DATE(B.udateCol)
GROUP BY DATE(A.dateCol);

没有答案。评论时间太长了,有点厌倦了从这块石头上抽血

考虑以下几点:

drop table if exists raw;
drop table if exists universe;

create table raw(dateCol date, id VARCHAR(20),PRIMARY KEY(datecol,id));
create table universe(udateCol date, uid VARCHAR(20),PRIMARY KEY(udatecol,uid));

insert into raw values
('20010101','AAPL'),
('20010102','MSFT'),
('20010103','INFY'),
('20010104','HOG');


insert into universe values
('20010101','AAPL'),
('20010102','GOOGL'),
('20010103','INFY'),
('20010105','HOG');
注意:我对每种情况下的主键都做了假设。如果这是不正确的,请澄清


给定这个数据集,期望的结果应该是什么样的?回答之前先考虑。

在什么情况下原始计数不是1?@草莓如果原始表中没有特定日期的日期,则应该是10@Strawberry不明白你想说什么?这个平台只供专家使用吗???它不会给出所需的结果result@ggupta很明显,因为你没有解释properly@Strawberry-好的,我想得到原始表中每个日期的计数,以及宇宙表中在同一日期匹配的计数。希望这是清楚的now@ggupta不。撰稿人不应该通过浏览评论来了解发生了什么。编辑你的问题。@ggupta如果这个答案回答了这个问题,那么这个问题仍然不清楚。