[英]Concat 2 columns in a string, then get a count for each concatenation
我正在尝试连接 2 列,然后计算行数,即合并列字符串存在的总次数,但我不知道是否可能。 例如:
SELECT
CONCAT(column_1,':',column_2 ) as merged_columns,
COUNT(merged_columns)
FROM
table
GROUP BY 1
ORDER BY merged_columns DESC
注意:我作为字符串的一部分插入的冒号,所以我的结果类似于 12:3。 然后“计数”应该告诉我 column_1 =12 和 column_2 = 3 处存在的行数。
显然,它告诉我“merged_columns”不是列,因为它只是我的 CONCAT 的别名。 但这是可能的吗?如果可能的话,怎么办?
我知道的老问题,但以下应该在没有临时表的情况下工作(除非我遗漏了一些东西):
SELECT
CONCAT(column_1,':',column_2 ) as merged_columns,
COUNT(CONCAT(column_1,':',column_2 ))
FROM
table
GROUP BY 1
ORDER BY merged_columns DESC
您可以尝试从您的串联选择创建一个临时表,然后查询:
SELECT CONCAT(column_1,':',column_2 ) AS mergedColumns
INTO #temp
FROM table
SELECT COUNT(1) AS NumberOfRows,
mergedColumns
FROM #temp
GROUP BY mergedColumns
希望这个答案是您正在寻找的。
尝试这个
SELECT
CONCAT(column_1,column_2 ) as merged_columns,
COUNT(*)
FROM
table
GROUP BY merged_columns
ORDER BY merged_columns DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.