mysql - MySql 列出 sum > 0 的所有字段
问题描述
前段时间我有一个问题如何编写一个带有多个的 sql 查询count()
,并在这里得到了需要的答案。
现在假设我有完全相同的表
ID|group_name|username
----------------------
1 | A | user1
----------------------
2 | B | user2
----------------------
3 | C | user1
...
和完全相同的查询:
select count(*) from TABLE
where username='user1'
having (sum(group_name ='A') > 0
and sum(group_name = 'B') > 0)
or sum(group_name = 'C') > 0")
但是现在我不想数,而是列出所有与此having
语句对应的用户名。也就是说,列出A 和 B 或 C组中的所有用户名。
现在我只尝试在我的查询中替换和添加,如下count(*)
所示username
:group by username
select username where username='user1' having (sum(group_name ='A') > 0 and sum(group_name = 'B') > 0) or sum(group_name = 'C') > 0") group by username
但我得到语法错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以
username
在第 1 行的 'GROUP BY LIMIT 0, 25'附近使用正确的语法
将不胜感激任何帮助。
解决方案
要列出满足您条件的用户名,您可以将查询编写为
select username
from table
group by username
having (
sum(group_name ='A') > 0 and sum(group_name = 'B') > 0
) or sum(group_name = 'C') > 0
推荐阅读
- c++ - 错误。没有重载函数“strcpy_s”的实例与参数列表匹配
- python - 使用 Django ORM 计算不同时区每天的事件类型
- javascript - Bootstrap 4导航栏导航项活动类不起作用
- php - 使用 PDO 将图像从 MySQL 数据库加载到 Bootstrap 轮播(fetchall 问题)
- python - 两组不相交区间的异或
- angular - Angular - 构建内部路由后不起作用 - 404错误
- laravel - 如何在 Laravel 中测试同时使用 `Storage::put()` 和 `Storage::temporaryUrl()` 的路由?
- excel - 遍历一列并根据列中的值删除多行
- azure-cosmosdb - 为 Cosmos .NET v3 SDK 使用自定义 System.Text.Json 序列化程序时,空间点数据类型未正确序列化
- php - 为什么 css 文件已连接但在 php 缓冲区中不起作用?