Предполагая определение таблицы Machine, попробуйте
-- # Shows number of people doing a request per day
SELECT
Count(DISTINCT userId) AS NumberOfUsers,
FROM
priceRequestsProducts prp,
date
GROUP BY
prp.date;
-- # Shows number of request for a given product per day
SELECT
Count(DISTINCT userId) AS NumberofUsers,
productId,
date
FROM
priceRequestsProducts prp
GROUP BY
prp.date, prp.productId;
Не желательно использовать по запросу. Для людей вы ожидаете одну строку в день, для продуктов - одну строку на пару (продукт, день). Если вы действительно хотите это сделать, введите значение, не используемое в качестве productId (я бы сделал productId UNSIGNED INT NOT NULL AUTO_INCREMENT), или используйте NULL и используйте его для обозначения пользователей:
SELECT
Count(DISTINCT userId) AS NumberOfUsers,
FROM
priceRequestsProducts prp,
NULL,
date
GROUP BY
prp.date;
UNION ALL
SELECT
Count(DISTINCT userId) AS NumberofUsers,
productId,
date
FROM
priceRequestsProducts prp
GROUP BY
prp.date, prp.productId;