为什么在使用COUNT时还需要使用GROUP BY函数?

问题描述 投票:0回答:1

我是 SQL 新手。我有以下有效的查询,附在下面。

我在没有GROUP BY功能的情况下尝试了多次,但没有成功。我很好奇这个函数的作用,因为我无法理解在线的任何描述,特别是这篇文章:https://www.w3schools.com/sql/sql_groupby.asp。我知道这会导致 items 表的行被收集到组中,但为什么我需要这样做才能使该查询正常工作?

SELECT 
    usertype,
    CONCAT(start_station_name," to ", end_station_name) AS route,
    COUNT(*) as num_trips,
    ROUND(AVG(cast(tripduration as int64)/60), 2) AS duration
FROM 
    `bigquery-public-data.new_york_citibike.citibike_trips` 
GROUP BY
    start_station_name, end_station_name, usertype
LIMIT 10
sql group-by google-bigquery count bigquery-public-datasets
1个回答
0
投票
select col1, col2, col3, concatenate(col1, col2)
from table_
where col1 = 'some_value'

这种 SQL 仅指行 concatenate(col1, col2) 也指行。

COUNT(*) 是聚合函数之一,这意味着它们引用行组,这就是您需要使用 GROUP BY 子句的原因。使用 group by,您可以执行 HAVING -> 对于行来说,what is WHERE,即对行组执行 HAVING。

尝试创建具有上述任何类型的 3 个字段的表,用几行填充它们,-> col1 包含所有值,col2 只有 2 个值,col3 有 1 个值,然后尝试对每列执行计数以查看发生什么事。

© www.soinside.com 2019 - 2024. All rights reserved.