add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
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