我想在Stack Overflow问题和答案数据集上查找特定一天提出的问题数。在2018-11-11有多少问题被问到?
how = """SELECT
EXTRACT(DAY FROM DATE '2018-11-11') AS Day,
EXTRACT(MONTH FROM DATE '2018-11-11') AS Month,
EXTRACT(YEAR FROM DATE '2018-11-11') AS Year,
COUNT(*) AS Number_of_Questions,
ROUND(100 * SUM(IF(answer_count > 0, 1, 0)) / COUNT(*), 1) AS Percent_Questions_with_Answers
FROM
`bigquery-public-data.stackoverflow.posts_questions`
GROUP BY
Day
HAVING
Day > 0 AND day < 12
ORDER BY
Day;
"""
how = stackOverflow.query_to_pandas_safe(how)
how.head(12)我使用的代码检索整个数据集中的所有问题,而不是在我选择的日期。如果我尝试用@@进行过滤,我会得到一个错误
发布于 2019-04-01 22:18:25
查询不会是这样的吗?
SELECT COUNT(*) AS Number_of_Questions
FROM `bigquery-public-data.stackoverflow.posts_questions`
WHERE DATE = DATE('2018-11-11');编辑:
我看到这是一个公开的数据集。假设您指的是创建日期,则:
SELECT count(*)
FROM `bigquery-public-data.stackoverflow.posts_questions` pq
WHERE creation_date >= TIMESTAMP('2018-11-11') and
creation_date < TIMESTAMP('2018-11-12') ;这段代码是经过测试的,当我运行它时,它可以正常工作。
发布于 2019-04-02 00:01:13
下面是针对BigQuery标准SQL的说明
#standardSQL
SELECT
DATE(creation_date) AS day,
COUNT(*) AS Number_of_Questions,
ROUND(100 * COUNTIF(answer_count > 0) / COUNT(*), 1) AS Percent_Questions_with_Answers
FROM `bigquery-public-data.stackoverflow.posts_questions`
WHERE DATE(creation_date) BETWEEN '2018-11-01' AND '2018-11-11'
GROUP BY day
-- ORDER BY day有结果

https://stackoverflow.com/questions/55457277
复制相似问题