小编aug*_*lec的帖子


BigQuery 标准 SQL 查询返回错误答案

这个查询:

SELECT x 
FROM dataset.table_a 
WHERE x NOT IN (SELECT x FROM dataset.table_b)
Run Code Online (Sandbox Code Playgroud)

即使以下情况也返回零记录:

  • 字段包含 1,326,932xtable_a不同的字符串值

  • 字段包含 18,885xtable_b不同的字符串值

我不懂为什么。此外,在 BigQuery 旧版 SQL 中,此查询会返回正确的答案。

sql google-bigquery

5
推荐指数
1
解决办法
725
查看次数

gcc -O3如何让运行如此之快?

让test_speed.c成为以下C代码:

#include <stdio.h>
int main(){
    int i;
    for(i=0; i < 1000000000; i++) {}
    printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)

我在终端跑:

gcc -o test_speed test_speed.c 
Run Code Online (Sandbox Code Playgroud)

然后 :

time ./test_speed
Run Code Online (Sandbox Code Playgroud)

我明白了:

在此输入图像描述

现在我运行以下内容:

gcc -O3 -o test_speed test_speed.c
Run Code Online (Sandbox Code Playgroud)

然后 :

time ./test_speed
Run Code Online (Sandbox Code Playgroud)

我明白了:

在此输入图像描述

第二轮怎么能这么快?它是否已在编译期间计算过?

c gcc

3
推荐指数
1
解决办法
239
查看次数

两个非常相似的代码,用于在n但非常不同的CPU时间内生成素数

这两个非常相似的代码具有非常不同的速度.我不明白为什么.第一个比第二个(5秒)慢得多(2分钟).

from numpy import sqrt 
primes = [2]
for i in range(3, 1000000):
    sq = int(sqrt(i))
    aux = False
    for j in primes:
        if j>sq:
            aux = True
        elif i%j==0:
            break
    if aux:
        primes.append(i)
Run Code Online (Sandbox Code Playgroud)

================================================== ================

def isPrime(p, primes):
        bound = numpy.sqrt(p)
        i = 0
        while(primes[i] <= bound):
            if p % primes[i] == 0:
                return False
            i += 1
        return True

def compute_primes(bound):
    primes = []
    primes.append(2)
    for n in range(3, bound):
        answer = isPrime(n, primes)
        if answer:
            primes.append(n)
    return …
Run Code Online (Sandbox Code Playgroud)

python primes time-complexity

0
推荐指数
1
解决办法
65
查看次数

BigQuery标准SQL:检查数组是否为null不起作用

如果我启动此查询:

with a as (
select cast(null as array<string>) as x union all select ['str1','str2'] as x)
select * from a where x is null
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

在此输入图像描述

这是我预期的结果.

但如果我首先启动此查询:

 select cast(null as array<string>) as x union all select ['str1', 'str2'] as x
Run Code Online (Sandbox Code Playgroud)

其结果我保存在数据集"tmp"中的表"a"中,然后我启动此查询:

select * from `tmp.a` where x is null
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

在此输入图像描述

我期望结果与第一个相同.为什么这两个结果有区别?

google-bigquery

0
推荐指数
1
解决办法
2259
查看次数

标签 统计

google-bigquery ×2

python ×2

c ×1

gcc ×1

primes ×1

scikit-learn ×1

sql ×1

time-complexity ×1