在SELECT
声明中,如果GROUP BY col_A
col_B = "some_value"
,GROUP BY col_C
是否可以SELECT value_of_the_column_used_for_group
FROM table WHERE ...
GROUP BY (IF col_B = "some_value" : col_A : ELSE : col_C)
LIMIT 0, 20;
?然后在结果中使用那个用于分组的字段?
像
{{1}}
基本上我想选择具有不同父级的子记录或具有不同ID的父记录。但我想选择父ID,可以是ID列,也可以是子记录中的“parent_ID”列
答案 0 :(得分:3)
您可以使用case
声明:
SELECT (case when col_B = 'some_value' then col_A ELSE col_C end)
FROM table WHERE ...
GROUP BY (case when col_B = 'some_value' then col_A ELSE col_C end)
LIMIT 0, 20;
答案 1 :(得分:0)
您可以为条件添加名称,并在一段时间后致电...
SELECT (case when col_B = 'some_value' then col_A ELSE col_C end AS 'CONDITION')
FROM table WHERE ...
GROUP BY CONDITION
LIMIT 0, 20;