如何将WHEREorHAVING子句与 a 结合使用GROUP_CONCAT,以便返回的数据将包括GROUP_CONCAT包含 ID 的项目的任意组合,而不仅仅是单个匹配项,例如
SELECT p.id,
p.title,
GROUP_CONCAT(a.author_id) as 'aus'
FROM publications p INNER JOIN authors a
ON p.publication_id = a.publication_id
WHERE a.author_id = 2
GROUP BY p.id,p.title
Run Code Online (Sandbox Code Playgroud)
会回来
id title aus
1 A 1,2,3
2 B 1,2
3 C 2
4 D 2
5 E 2,3
Run Code Online (Sandbox Code Playgroud)
而不仅仅是 3 和 4。
我在 a.author_id 列和产品上尝试了HAVING和子句的各种组合。WHEREGROUP_CONCAT
在MySql数据库中我有表 user
user_id | user_name
--------+----------
1 | Joe
2 | Anna
3 | Max
Run Code Online (Sandbox Code Playgroud)
表 group
group_id | group_name
---------+----------
1 | Red
2 | Blue
3 | Green
Run Code Online (Sandbox Code Playgroud)
表 group_member
group_member_id | user_id | group_id
----------------+---------+---------
1 | 1 | 2
2 | 3 | 2
3 | 1 | 3
3 | 2 | 1
Run Code Online (Sandbox Code Playgroud)
所以... Red组的成员是Anna,Green gorup的成员是Joe,Blue组的成员是Joe和max.
如何获取用户及其组的列表
User | Group
------+------------
Joe | Green, Blue
Anna | Red
Max | Blue
Run Code Online (Sandbox Code Playgroud) 我有一张桌子 Details
DeptId EmpID
------- ---------
1 1
1 5
1 3
2 8
2 9
Run Code Online (Sandbox Code Playgroud)
我想将它们分组为:
DeptId EmpIDs
------- -------
1 1,5,3
2 8,9
Run Code Online (Sandbox Code Playgroud)
我想在SQL Server中使用它.我知道这可以在MySQL中使用Group_Concat函数完成.例如
SELECT DeptId, GROUP_CONCAT(EmpId SEPARATOR ',') EmpIDS
FROM Details GROUP BY DeptId
Run Code Online (Sandbox Code Playgroud)
但是如何使用SQL Server执行此操作?我不知道任何功能.
是否可以在Group_concat中选择分隔符逗号并在其中搜索concat by comma Here我的mysql示例:
products_attributes_id |products_id| options_id| options_values_id
39 | 31 | 3 | 3
35 | 30 | 2 | 2
38 | 30 | 1 | 1
40 | 31 | 2 | 2
41 | 30 | 1 | 4
42 | 30 | 1 | 5
43 | 31 | 1 | 4
Run Code Online (Sandbox Code Playgroud)
我想要GROUP_CONCAT options_values_id
SELECT*,GROUP_CONCAT(options_values_id SEPARATOR',')FROM products_attributesGROUP by products_id
products_attributes_id | products_id | options_id | options_values_id | options_values_id
35 | 30 | 2 | …Run Code Online (Sandbox Code Playgroud) 我有一张看起来像这样的表:

这个表包含343行.
我正在尝试对它运行此查询:
create table newTest2
select function_name, service_name, min(concurrency), substring_index(group_concat(date order by concurrency ), ',',1) as minDate,
max(concurrency), substring_index(group_concat(date order by concurrency desc), ',',1) as maxDate , avg(concurrency)
from conc_intermidate
group by function_name,service_name;
Run Code Online (Sandbox Code Playgroud)
当我运行查询时,它给了我:"行203被GROUP_CONCAT()剪切",我不知道为什么它给了我这个错误.请帮忙!谢谢...
我需要将MySQL数据库表中的两个文本字段组合成一个,所以我使用了以下SQL脚本来完成它.
表:tbl_newsitems组合:需要将'ni_text'中的文本与相同的'news_id'表格布局组合:

用于组合文本的代码:SELECT
news_id,GROUP_CONCAT(ni_text
SEPARATOR'')FROM tbl_newsitems GROUP BY news_id;
但它不会在结果部分显示完整(完整)文本.修剪了CONCAT字段并丢失了一些文本.CONCAT字段的默认数据类型是TEXT(1024)
结果:

那么如何在不删除内容的情况下将整个文本合并到一个字段中.请给我脚本来执行此操作.
谢谢
我在MySQL表中使用GROUP_CONCAT遇到麻烦,g0如下所示:
ID Age Sex
-------------
1 16 Male
2 18 Female
3 16 Male
4 18 Female
5 16 Male
Run Code Online (Sandbox Code Playgroud)
但是我需要桌子看起来像
ID count
1,3,5 3
2,4 2
Run Code Online (Sandbox Code Playgroud)
我试过这个查询:
ID Age Sex
-------------
1 16 Male
2 18 Female
3 16 Male
4 18 Female
5 16 Male
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
1248. Every derived table must have it's own alias
Run Code Online (Sandbox Code Playgroud) SQL小提琴:http ://sqlfiddle.com/#!9/ e7f72/2
假设名为 testt 的表中有 10 条记录(id 不是 null 自动增量)。如果我要做
SELECT GROUP_CONCAT(id) FROM testt
Run Code Online (Sandbox Code Playgroud)
我希望结果看起来像
1、2、3、4、5、6、7、8、9、10
我怎么能让结果看起来像这样:
1,2
3,4
5,6
7,8
9,10
数据:
id uid type
1 20 A
2 20 B
3 20 A
4 6 A
5 1 A
6 3 A
7 6 A
8 1 B
Run Code Online (Sandbox Code Playgroud)
场景:
我想分组type并按排序id。我正在使用分组依据对分组uid。
当前查询:
SELECT
type,
GROUP_CONCAT(DISTINCT uid) AS users,
COUNT(type) AS typeCount
FROM
`test2`
GROUP BY
type
Run Code Online (Sandbox Code Playgroud)
问题:
但是的顺序uid是不正确的,它应根据降序排列id。
预期结果:
type users typeCount
A 6,3,1,20 6
B 1,20 2
Run Code Online (Sandbox Code Playgroud)
我的结果:
type users typeCount
A 20,6,1,3 6
B 20,1 2
Run Code Online (Sandbox Code Playgroud) 我已经使用GROUP_CONCAT来获得由逗号(,)分割的结果,但是当我看到时,GRUP_CONCAT返回的只有205个分割数字,但在数据库中有2448个结果(不同aid).这是我的查询:
SELECT GROUP_CONCAT(`aid`) As favoriti
FROM `z_web_favoriti`
WHERE `kup_id`='1' AND `pos_id`='571'
Run Code Online (Sandbox Code Playgroud)
当我执行:
SELECT DISTINCT `aid`
FROM `z_web_favoriti`
WHERE `kup_id`='1' AND `pos_id`='571'
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:显示行0 - 29(总计2448,...)
任何人都有一些解决方案,为什么它不工作? 我在stackoverflow上搜索了类似的问题,但我找不到它..
group-concat ×10
mysql ×9
sql ×4
concat ×3
group-by ×2
php ×2
grouping ×1
longtext ×1
select ×1
sql-server ×1