如何仅列出每个学校的球员姓名,同时排除 Bigquery SQL 中的空值?

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

我正在尝试进行一个查询,列出他们在加入 NFL 之前效力的大学下的球员。我想删除空值并仅列出每个学校下的球员。你们知道我该怎么做吗?我尝试编写一个“is null”声明并将其放入 cte 中,但没有成功。任何意见都会受到赞赏。这是我的代码:

Select * from(
Select 
collegeName, displayName,ANY_VALUE(displayName) as Player
from NFL.Players
group by collegeName,displayName)
Pivot (Any_Value(Player) for collegeName in('Kansas State','Abilene Christian','Texas Tech'))
sql google-bigquery
1个回答
0
投票

您确实可以将

PIVOT
STRING_AGG
聚合函数一起使用。

WITH
  players AS (
    SELECT "Kansas State" AS collegeName, "Player 1" AS displayName
    UNION ALL
    SELECT "Abilene Christian" AS collegeName, "Player 2" AS displayName
    UNION ALL
    SELECT "Kansas State" AS collegeName, "Player 3" AS displayName
    UNION ALL
    SELECT "Texas Tech" AS collegeName, "Player 4" AS displayName
    UNION ALL
    SELECT "Kansas State" AS collegeName, "Player 5" AS displayName
  )

SELECT 
  *
FROM players
PIVOT(STRING_AGG(displayName) FOR collegeName IN ('Kansas State', 'Abilene Christian', 'Texas Tech'))

这将导致:

+----------------------------+-------------------+------------+
| Kansas State               | Abilene Christian | Texas Tech |
+----------------------------+-------------------+------------+
| Player 1,Player 3,Player 5 | Player 2          | Player 4   |
+----------------------------+-------------------+------------+
© www.soinside.com 2019 - 2024. All rights reserved.