MYSQL 联合组依据

标签 mysql select group-by union-all

我正在执行此选择语句:

SELECT * FROM (
SELECT COUNT(t.text) as count, COUNT(DISTINCT(t.from_user_id)) as usercount, DATE_FORMAT(t.created_at,'%Y-%m-%d %H:00') datepart 
FROM TABLE1 t WHERE t.created_at >= '2015-08-12 00:00:00' AND t.created_at <= '2015-08-13 18:30:00' AND t.eliminar IS NULL 
GROUP BY datepart) as t
UNION ALL
SELECT * FROM (
SELECT COUNT(b.id) as count, COUNT(DISTINCT(b.from_user_id)) as usercount, DATE_FORMAT(b.created_at,'%Y-%m-%d %H:00') datepart 
FROM TABLE2 b WHERE b.created_at >= '2015-08-12 00:00:00' AND b.created_at <= '2015-08-13 18:30:00' AND b.eliminar IS NULL 
GROUP BY datepart) as x GROUP BY datepart 

这个选择得到这个:

enter image description here

我正在尝试使用 datepart 分组进行查看,但我不能,知道我做错了什么吗?

TABLE2 只有 (id,from_user_id,eliminar) 并且除了 created_at 之外都是 NULL,在这一行中我有整个 2015 年的逐日和小时,格式与 TABLE1 相同

最佳答案

已解决:

SELECT DISTINCT * FROM (
SELECT COUNT(t.text) as count, COUNT(DISTINCT(t.from_user_id)) as usercount, DATE_FORMAT(t.created_at,'%Y-%m-%d %H:00') datepart 
FROM TABLE1 t WHERE t.created_at >= '2015-08-12 00:00:00' AND t.created_at <= '2015-08-13 18:30:00' AND t.eliminar IS NULL 
GROUP BY datepart
UNION ALL
SELECT COUNT(t.id) as count, COUNT(DISTINCT(t.from_user_id)) as usercount, DATE_FORMAT(t.created_at,'%Y-%m-%d %H:00') datepart 
FROM TABLE2 t WHERE t.created_at >= '2015-08-12 00:00:00' AND t.created_at <= '2015-08-13 18:30:00' AND t.eliminar IS NULL 
GROUP BY datepart) as x GROUP BY datepart ORDER BY datepart

关于MYSQL 联合组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32613907/

相关文章:

mysql - 我可以使用 yii CSqlDataProvider 执行两个或多个 sql 语句吗?

一行一对多的mysql

sql - 使用一个 SQL 语句的结果在另一语句中进行计数

python - Pandas - 找到第一次出现

php - 依赖大量读/写时在 php/mysql/ajax 中应避免什么

php - 使用 HTML 表单和 PHP 在 MySQL 数据库中存储电子邮件

php - 如果缺少中间文本,mysql 查询将不起作用

select - flutter 中是否有与 HTML 中的 "select multiple"元素等效的小部件

来自别名表的 MySQL Sum

mysql - 反规范化以减少 COUNT 和 AVG 等聚合函数(计算)的使用 : worth it?