sql - 如何根据表数据返回标志值
问题描述
我在 BIG QUERY 中有一个表“emp”,如下所示
如果我们按所有列或不同的记录分组,那么我们将得到 3 作为计数,如果我们计数(*),那么它将给出 4
我需要编写一个必须返回“1”的查询,如果不同的记录和计数(*)值不相等(在我们的例子中为 3 != 4)否则“0”作为标志,如下所示
解决方案
以下是 BigQuery 标准 SQL
#standardSQL
SELECT IF(COUNT(*) = COUNT(DISTINCT FORMAT('%t', t)), 0, 1) AS flag
FROM `project.dataset.emp` t
如果适用于您的问题的样本数据 - 结果是
Row flag
1 1
推荐阅读
- r - 仅在 R 中的边界内替换特定字符
- java - 无法将 android app-release.apk 上传到 Play 商店
- azure - 将数百万个文件从根 AZStorage Blob 复制到子文件夹
- git - 从旧的 git 提交中删除大文件?
- php - 使用 php regex 从 SQL Query 中删除最后一个 order by 子句
- sharedpreferences - 我对保存数据的理解做错了什么,需要制作一个简单的应用程序来一起添加数字并保存结果以添加更多内容
- jenkins - Jenkins:org.testng.xml.XMLParser 的非法反射访问
- android - OpenGL ES 2.0 / GLSL 不渲染数据 (Kotlin)
- github - GitHub 用户页面新主题和更改未更新
- java - 我的 discord 机器人没有错误的 Java 代码。但我的机器人仍然离线