При каждом вызове страницы в конце добавляется вставка этого вызова в БД.
Записывать можно URL, параметры, инфо о браузере, время и т.п. Об ID записи вообще не надо думать, просто таблица с автогенерацией ID. Никакие ON DUPLICATE тогда не нужны.
Для статистики - COUNT, WHERE, ORDER BY и т.д. (я про MySQL, но, полагаю, и в POSTGRES есть такое)
В таблице делаете поле типе DATETIME, по умолчанию CURRENT TIMESTAMP. Таким образом, оно будет заполняться автоматически.
При выборке за день задаете WHERE DATE(имя_поля)=требуемая_дата. Вот и статистика
за день.
Кстати, IP имеет смысл записывать, хоть оно и не идентифицирует юзера, но несет много информации.
Если кто-то нечаянно нажмет CTRL-R, статистике это абсолютно не повредит.
Если же кто-то будет усердно нажимать эту комбинацию в течение часа, он явно заслужил наше дополнительное внимание. Такого юзера легко выделить и убрать его заходы из таблицы.