안녕하세요.
select top 5 * from tableA order by abs(columnA- (rand()*5000)) asc
이렇게 해봤는데요.
columnA에 각 레코드별로 bigint값이 다르게 들어있습니다. 이걸 비중으로 보고. 그 비중에 맞춰서 random 하게 레코드를 가져오려고 했는데요.
rand()*5000 이 값이 저 안에서는 어떤 레코드와 상관없이 같을 것이라고 생각을 했는데요.
결과를 보니 혹시 매 레코드마다 달라지는 게 아닌가 싶습니다. 그리고 rand()*5000이 똑같은 값이면 구지 그것을 넣지 않고 columnA asc 했을것 같기두 하구요.
select rand() as randvalue, * from tableA하면 리턴되는 10개 레코드 모두 같은 randvalue를 가지고 있습니다.
남이 짜놓은 코드인데.. 왜 저렇게 썼는지 전혀 이해가 가지 않습니다.
조언 부탁드립니다. |