首页 > 解决方案 > 使用 SQL 从特定日期选择活动

问题描述

我想在 Stack Overflow Question and answer 数据集上查找特定日期内提出的问题数量。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)

我使用的代码检索整个数据集中提出的所有问题,而不是在我选择的日期。如果我尝试使用 @@ 过滤,我会收到错误

标签: pythonsqlfiltergoogle-bigqueryjupyter-notebook

解决方案


查询不会像这样吗?

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') ;

此代码经过测试并且在我运行时可以正常工作。


推荐阅读