2015-02-05 3 views
0

내 데이터는 1x1000 벡터처럼 보입니다. 때로는 나이에 불과하지만 때로는 무게와 상태 ID를 추가하기도합니다. 내가 출력으로 좀하고 싶습니다 무엇BigQuery;

85 age 
15 age; 68 Weight 
25 age; 80 Weight; 02 Alaska 
72 Weight; 50 Wyoming 

는 단지 숫자 - 그 그래서 다시 대신 1000 2000 회선을 통해 저를 제공하기 때문에

85 
15 68 
25 80 02 
72 50 

내가 SPLIT를 사용하여 훨씬 성공하지 않는, 즉 I 그것을하는 방법을 모른다. SPLIT를 결합하여 분할하기 전에 몇 개의 정보 지점이 있었는지를 설명 할 수없는 한. 나는.

85 1 
15 2 
68 2 
25 3 
80 3 

답변

2

당신은 REGEXP_REPLACE 사용할 수 있습니다

SELECT REGEXP_REPLACE("25 age; 80 Weight; 02 Alaska",'[^0-9 ]','') 

더에 대한 읽기는 Regular Expression functions 완성도를 들어

1

- 이것은 당신의 카운트와 함께 결과를 얻을 수 SPLIT을 사용할 수있는 방법입니다 분할 전 정보 지점 :

select left(xs, 2), count(xs) within record from(
select split(x, ";") xs from 
(select "85 age" as x), 
(select "15 age; 68 Weight" as x), 
(select "25 age; 80 Weight; 02 Alaska" as x), 
(select "72 Weight; 50 Wyoming" as x))