SQL Server 2008 (또는 2012 년 사용 가능)을 사용하여 UserID, 날짜 및 작업 필드가있는 '활동'테이블이 있으며 각 사용자가 각 작업 동안 각 작업을 수행 한 횟수를 계산하려고합니다 일. 불행히도 '액션'은 텍스트 필드 일 뿐이며 때로는 기본적인 액션 이상을 포함합니다.SQL 쿼리에서 파생 된 필드
SELECT UserID,
Cast([Timestamp] AS DATE) AS DateField,
Count(Action LIKE '%Logged In%') AS LoggedIn,
Count(Action LIKE '%Requested Planning Data%') AS Planning,
Count(Action LIKE '%Requested Time Series Data%') AS TimeSeries,
Count(Action LIKE '%Requested Analytical Data%') AS Analytical
FROM Activity
ORDER BY UserID,
DateField
결과는 다음과 비슷한 모습이 될 것입니다 : 그래서 이런 식 완
UserID DateField LoggedIn Planning TimeSeries Analytical
------ --------- -------- -------- ---------- ----------
1 01-11-2014 1 1 0 2
1 02-11-2014 3 7 2 5
2 01-11-2014 1 8 0 0
...
하지만 난 어떻게 '수'열을 도출하는 아무 생각이 없습니다. 이것은 가능한가?
UserID Timestamp Action
1 01-11-2014 09:00:15 User Logged In
1 01-11-2014 09:01:15 User Requested Planning Data for 2 sites
1 01-11-2014 09:07:15 User Requested Analytical Data for 1 sites
1 01-11-2014 09:25:15 User Requested Analytical Data for 8 sites
1 02-11-2014 09:03:15 User Logged In
1 02-11-2014 09:07:15 User Logged In
...
--- 알리스 테어
문제가 이미 좋은 답변을 가지고 있지만 궁금한 점이 있습니까 ... '타임 스탬프'는 무엇입니까? – Andrew
재미있는 팁 : 쿼리에서'SELECT @@ VERSION'을 실행하여 설치된 버전을 볼 수 있습니다. 서버의 버전 정보를 알려주는 단일 값 결과를 반환합니다. – AHiggins
Andrew, Timestamp는 DateTime입니다. 나는 날짜별로 그룹화 할 수 있도록 시간 부분을 제거하기 위해 날짜로 캐스팅합니다. AHiggins, 팁 주셔서 감사합니다. – user41013