MySQL分组方式,无需从另一列进行转换

MySQL分组方式,无需从另一列进行转换,mysql,Mysql,我有一个表my_table,其中包含组id,区域,值。我想从每个组中选择值链,但仅当组中所有记录的region=US时 我最初尝试的查询是 SELECT GROUP_CONCAT( value ORDER BY DATE DESC SEPARATOR '<-' ) AS value_chain FROM my_table WHERE region = 'US' GROUP BY (group_id) 选择 组_CONCAT( 价值 订单

我有一个表
my_table
,其中包含
组id
区域
。我想从每个组中选择值链,但仅当组中所有记录的
region=US

我最初尝试的查询是

SELECT
GROUP_CONCAT(
             value
             ORDER BY DATE DESC SEPARATOR '<-'
) AS value_chain
FROM my_table
WHERE region = 'US'
GROUP BY (group_id)
选择
组_CONCAT(
价值
订单按日期描述分隔符“尝试以下操作:

SELECT GROUP_CONCAT(value ORDER BY DATE DESC SEPARATOR '<-') AS value_chain
FROM my_table
GROUP BY group_id
HAVING SUM(region <> 'US') = 0

选择组\u CONCAT(value ORDER BY DATE DESC SEPARATOR'出于兴趣,我首先尝试使用
COUNT
而不是
SUM
,但没有返回任何行。你知道为什么吗?我真的看不出是什么原因导致@rbennett485不能将
COUNT
与谓词一起使用,因为
COUNT
将计算所有非空值,因此我会数一数的,你是最好的Giorgos,+1
-- drop table if exists my_table;
create table my_table
(   group_id int not null, 
    region varchar(20) not null, 
    value int not null,
    date date not null
);
-- truncate table my_table;
insert my_table values
(1,'US',100,'2016-01-07'),
(1,'CAD',200,'2016-01-06'),
(2,'US',700,'2016-02-07'),
(3,'CAD',666666,'2016-01-07'),
(4,'US',1200,'2016-02-04'),
(4,'US',1400,'2016-02-03');


SELECT GROUP_CONCAT(value ORDER BY DATE DESC SEPARATOR '<-') AS value_chain 
FROM my_table 
GROUP BY group_id 
HAVING SUM(region <> 'US') = 0 
+-------------+
| value_chain |
+-------------+
| 700         |
| 1200<-1400  |
+-------------+