我正在尝试统计在数据库中登录的用户,问题是按日期计算uniq登录。问题是,用户在一天内可能会有多个登录。
例如表学生StudentID
小时TypeID = StudentID,日期,时间123,2014-11-11,00:11:00 123,2014-11-11,00:15:00 123,2014-11-11,00:16:00等。
我正在尝试使用这个查询...
select count(*) from (
select '1' from Students s LEFT JOIN Hours h on s.StudentID = h.TypeID
where s.StudentID = stud.StudentID
group by h.Date) tmp, Student stud
where s.LastName = 'TestUser'但是子查询显示错误:未知列stud.StudentID
发布于 2014-11-15 06:07:18
错误非常明显,列StudentID在"stud“别名中不存在。您可以将别名定义为"s“。可能是这样的:
select count(*) from (
select '1' from Students s
LEFT JOIN Hours h on s.StudentID = h.TypeID
where s.StudentID = h.StudentID
group by h.Date
) tmp但这不会生效,因为您没有选择任何内容。
, Student s
where s.LastName = 'TestUser'但我认为这仍然不是功能性的。你想做什么?
发布于 2014-11-17 13:59:24
试试这个:
Select h.Date, Count(Distinct TypeID) as tot
From [Hours] as h
Left Join Students s
On s.StudentID = h.TypeID
where s.LastName = 'TestUser'
Group By h.Datehttps://stackoverflow.com/questions/26939573
复制相似问题