Uztaisīju nelielu piemēru.
Ir tabula ar postiem:
CREATE TABLE `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `text` text COLLATE ascii_bin NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=ascii COLLATE=ascii_bin
Tabulās ir 3 posti:
INSERT INTO `posts` (`id`, `user_id`, `text`) VALUES
(1, 1, 'bla'),
(2, 1, 'blabla'),
(3, 2, 'text'),
(4, 2, 'texttext'),
(5, 2, 'texttexttext');
Un, pirmkārt, ja ir nepieciešams atrast no visiem datiem, cik katram lietotājam ir posti:
SELECT COUNT(*) AS postu_skaits
FROM `posts`
GROUP BY user_id
Atgriež:
postu_skaits: 2 | 3
Ja nepieciešams iegūt postu skaitu konkrētam lietotājam:
SELECT COUNT(*) AS postu_skaits
FROM `posts`
WHERE user_id = 2
Atgriež:
postu_skaits: 3