2016-08-02 9 views
0

카운트의 난수 생성 방법이 있습니까? 내가하는 일에 대한 고유 식별자로 사용하고 싶습니다.PostgreSQL : 매 시간 임의의 숫자 생성

SELECT COUNT(distinct bt.id) AS count, 
     <insert unique id here>  
FROM boats bt 
WHERE bt.created_at >= current_date AND 
     bt.created_at < current_date + INTERVAL '1 day' AND 
     bt.state != 'deactivated'; 

가 나는 그것이 새로운 번호 매 시간마다을 생성 할 : 다음은 샘플 쿼리입니다. ID 위

원하는 출력

count id 
23  432543 

는 매 시간마다 업데이트해야합니다.

SELECT h.hh, COUNT(distinct bt.id) AS count, 
FROM generate_series(0, 23) h(hh) LEFT JOIN 
    boats bt JOIN 
    ON extract(hour from bt.created_at) = h.hh AND 
     bt.created_at >= current_date AND 
     bt.created_at < current_date + INTERVAL '1 day' AND 
     bt.state <> 'deactivated' 
GROUP BY h.hh 
ORDER BY h.hh; 

더 "랜덤"수가이에 없습니다 :

+0

샘플 데이터를 시도 할 수 있으며, 원하는 결과가 정말 도움이 될'임의()'. –

+0

시간당 COUNT를 생성합니까? –

+2

왜 현재 날짜 + 현재 시간을 고유 식별자로 사용하지 않습니까? 난수를 생성한다고해서 그것이 고유 한 것은 아닙니다. –

답변

0

나는 당신이 원하는 것을 추측하고있다. 이것을 식별자로 바꾸려면 YYYYMMDDHH 형식을 사용하거나 시간을 난수 생성 프로그램의 시드로 사용하십시오.

0

당신은 단순히의 효과에 대한 답변을하지 않으려는 가정, 당신이

SELECT COUNT(distinct bt.id) AS count, 
     to_char(now(),'YYYYMMDDHH24')::integer AS ID 
FROM boats bt 
WHERE bt.created_at >= current_date AND 
     bt.created_at < current_date + INTERVAL '1 day' AND 
     bt.state != 'deactivated'; 
관련 문제