By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE user_private_message (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_from_id INT NOT NULL,
send_time TIMESTAMP NOT NULL DEFAULT NOW()
);
INSERT INTO user_private_message(user_from_id, send_time)
VALUES
(1, '2007-01-01 00:00:00'),
(1, '2007-01-01 00:00:00'),
(1, '2007-01-02 00:00:00'),
(1, '2007-01-02 00:00:00'),
(2, '2007-01-02 00:00:00'),
(1, '2007-01-03 00:00:00'),
(2, '2007-01-03 00:00:00'),
(3, '2007-01-03 00:00:00'),
(1, '2007-01-04 00:00:00'),
(1, '2007-01-04 00:00:00'),
(1, '2007-01-04 00:00:00'),
(1, '2007-01-05 00:00:00'),
(2, '2007-01-05 00:00:00');
Records: 13 Duplicates: 0 Warnings: 0
SELECT
DATE(send_time),
COUNT(user_from_id) AS message_count,
COUNT(DISTINCT user_from_id) AS senders_count
FROM user_private_message
GROUP BY DATE(send_time);
DATE(send_time) | message_count | senders_count |
---|---|---|
2007-01-01 | 2 | 1 |
2007-01-02 | 3 | 2 |
2007-01-03 | 3 | 3 |
2007-01-04 | 3 | 1 |
2007-01-05 | 2 | 2 |
SELECT
DATE(send_time),
COUNT(user_from_id) AS message_count,
COUNT(DISTINCT user_from_id) AS senders_count
FROM user_private_message
GROUP BY DATE(send_time)
HAVING COUNT(user_from_id) = COUNT(DISTINCT user_from_id);
DATE(send_time) | message_count | senders_count |
---|---|---|
2007-01-03 | 3 | 3 |
2007-01-05 | 2 | 2 |