【问题标题】:How can I get the count of multiple table rows storing in different variables using single query?如何使用单个查询获取存储在不同变量中的多个表行的计数?
【发布时间】:2017-11-08 15:49:52
【问题描述】:

我有 4 个不同的表,我想获取每个表的计数行并获取 4 个不同变量的计数(*)。

我使用的查询是:

 SELECT count(*) as count1 FROM `table1` 
 UNION ALL 
 SELECT count(*) as count2 FROM `table2`
 UNION ALL 
 SELECT count(*) as count3 FROM `table3`
 UNION ALL
 SELECT count(*) as count4 FROM `table4`

查询为我提供了每行的计数,但所有值都存储在同一个变量名中。

 [
  {
    "count1": 16171
  }, 
  {
    "count1": 5928
  }, 
  {
    "count1": 33318
  }, 
  {
    "count1": 5877
  }
 ]

有什么办法可以得到输出;

 [
  {
    "count1": 16171
  }, 
  {
    "count2": 5928
  }, 
  {
    "count3": 33318
  }, 
  {
    "count4": 5877
  }
 ]

提前致谢。

【问题讨论】:

  • SELECT count(*), 'count1' FROM table1`` 等
  • 感谢为我工作。
  • 查询效率如何?是否有任何替代查询可用于提高 Big Query 中的查询效率。
  • 我想不出更好的了。

标签: mysql sql database google-bigquery


【解决方案1】:

UNION ALL 联合行。听起来您只想列出选择列表中的每个计数。试试这个:

SELECT
  (SELECT COUNT(*) FROM `table1`) AS count1,
  (SELECT COUNT(*) FROM `table2`) AS count2,
  (SELECT COUNT(*) FROM `table3`) AS count3,
  (SELECT COUNT(*) FROM `table4`) AS count4
;

【讨论】:

    【解决方案2】:

    以下是 BigQuery 标准 SQL

    #standardSQL
    SELECT 
      table_id,
      row_count
    FROM `yourProject.yourDataset.__TABLES__`   
    WHERE table_id in ('table1', 'table2', 'table3', 'table4')
    

    这种方法让您(免费!!)获得的不仅仅是行数 - 请参阅下面的示例

    #standardSQL
    SELECT table_id,
      DATE(TIMESTAMP_MILLIS(creation_time)) AS creation_date,
      DATE(TIMESTAMP_MILLIS(last_modified_time)) AS last_modified_date,
      row_count,
      size_bytes,
      CASE
        WHEN type = 1 THEN 'table'
        WHEN type = 2 THEN 'view'
        WHEN type = 3 THEN 'external'
        ELSE '?'
      END AS type,
      TIMESTAMP_MILLIS(creation_time) AS creation_time,
      TIMESTAMP_MILLIS(last_modified_time) AS last_modified_time,
      dataset_id,
      project_id
    FROM `bigquery-public-data.baseball.__TABLES__`
    

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多