2017-03-06 6 views
1

큰 파티션 테이블이있어서 각 파티션에 얼마나 많은 항목이 있는지 알아 내려고 일 파티션입니다. 지금까지 스크립트에서 for loop을 사용했지만 더 간단한 방법이 있어야합니다.BigQuery - 파티션 당 몇 개의 항목이 있습니까?

Google이 나를 도와주지 않았습니다. 누구든지 올바른 쿼리를 알고 있습니까?

감사

답변

2

당신은

#standardSQL 
SELECT 
    _PARTITIONTIME AS pt, 
    COUNT(1) 
FROM 
    `dataset.table` 
GROUP BY 
    1 
ORDER BY 
    1 DESC 

#legacySQL 
SELECT 
    _PARTITIONTIME AS pt, 
    COUNT(1) 
FROM 
    [dataset:table] 
GROUP BY 
    1 
ORDER BY 
    1 DESC 

는 다음과 같이 테이블을 반환주의하십시오 각 파티션에 얼마나 많은 항목을 계산하기 위해 다음 쿼리를 실행할 수 있습니다 NULL 항목은 여전히 ​​스트리밍 버퍼에 있습니다. 힌트 : 스트리밍 버퍼에있는 레코드를 얻으려면 NULL 쿼리를 사용하십시오.

+-------------------------+-----+--+ 
| 2017-02-14 00:00:00 UTC | 252 | | 
+-------------------------+-----+--+ 
| 2017-02-13 00:00:00 UTC | 257 | | 
+-------------------------+-----+--+ 
| 2017-02-12 00:00:00 UTC | 188 | | 
+-------------------------+-----+--+ 
| 2017-02-11 00:00:00 UTC | 234 | | 
+-------------------------+-----+--+ 
| 2017-02-10 00:00:00 UTC | 107 | | 
+-------------------------+-----+--+ 
| null     | 13 | | 
+-------------------------+-----+--+ 
+0

레거시 SQL을 사용한 특별한 이유가 있습니까? –

+1

도 표준으로 추가되었습니다. – Pentium10

+0

Brilliant @ Pentium10! –