2011-11-03 3 views
2

테이블에서 수를 가져 오려고하지만 시간 열이 길어서 단순히 시간 열에 따라 그룹화 할 수 없습니다. 날짜 열에 따라 그룹화해야합니다. 어떻게해야합니까?timestamp를 long으로 저장하는 열에서 날짜순으로 그룹화 (bigint)

테이블 :

Column | type 
---------------- 
id  | Long (bigint) 
name  | String (varchar) 
time  | Long (bigint) 

나는 쿼리를 다음 시도해야하지만 긴 시간을 가지고 있고 날짜별로 그룹에 원하는대로 작동하지 않습니다.

select time,count(*) from my_table mt group by time; 

어떻게 위 쿼리에서 날짜별로 그룹화 할 수 있습니까?

hibernate에서이 쿼리를 사용하려고하는 한 가지 더 hql로 작성 될 수있는 쿼리가 필요합니다.

답변

2

먼저 타임 스탬프를 날짜로 변환 한 다음 날짜순으로 그룹화합니다.

select mt.time,count(*) from my_table mt group by DATE(FROM_UNIXTIME(mt.time)); 

희망이 있습니다. 치어 리더 :)

+0

작은 따옴표가 아닌 역 따옴표가 필요합니다 (또는 전혀 깜박임이 아님). –

+1

postgresql에서 동일한 작업을 수행하는 방법을 알고 있습니까? –

+0

@Salman : 정정 해줘서 고마워. – Suleman

1
SELECT DATE(FROM_UNIXTIME(`time`)) AS date_from_time, COUNT(1) 
FROM my_table 
GROUP BY date_from_time 
+0

작동하지 않습니다. 결과가'null | 588'. 588은 테이블의 전체 행 수입니다. –

관련 문제