Предыдущие ответы не охватывают часть where
и не выводят имя дня.
Это должно сделать и то, и другое, что вы хотите:
create table #data (
reg_id int,
reg_email nvarchar(255),
reg_date datetimeoffset(7)
)
insert into #data(reg_id, reg_email, reg_date)
VALUES
(1, 'a', '2018-10-01'),
(2, 'b', '2018-10-01'),
(3, 'c', '2018-10-02'),
(4, 'd', '2018-10-03'),
(5, 'e', '2018-10-01'),
(6, 'f', '2018-10-02'),
(7, 'g', '2018-10-04'),
(8, 'h', '2018-10-05'),
(9, 'i', '2018-10-05'),
(10, 'j', '2018-10-06')
SELECT count(*), datename(dw, reg_date) from #data
where datepart(week, reg_date) = 40
group by reg_date
drop table #data
при условии, что вы используете sql server
больше или равно 2008!