Сравнение с значением epsilon - это то, что делают большинство людей (даже в игровом программировании).
Вы должны немного изменить свою реализацию:
bool AreSame(double a, double b)
{
return fabs(a - b) < EPSILON;
}
Изменить: Christer добавила стопку большой информации по этой теме в недавнем сообщении в блоге . Наслаждайтесь.
Что-то вроде:
SELECT COUNT(*) AS `Rows`, UserID
FROM `postings`
GROUP BY UserID
ORDER BY `Rows` DESC
LIMIT 1
Это получает количество строк, отправленных определенным идентификатором, а затем сортирует, используя подсчет, чтобы найти максимальное значение, выводить его и идентификатор человека. Вам нужно будет заменить «UserID» и «postings» соответствующим столбцом и полем.
Я считаю, что это должно работать ...
SELECT user_id, COUNT(*) FROM postings ORDER BY COUNT(*) GROUP BY user_id LIMIT 1
Предполагая, что публикация является кортежем (user_id, recipient_user_id), где каждая строка представляет одну проводку, от user_id до recipient_user_id:
select user_id, count(*) as posts
from postings
group by user_id
having count(*) = max(count(*)) ;