首页 > 解决方案 > 在sql中的concat col中获取相同行数

问题描述

我正在尝试 Concat(description, number, date) 然后像 count(concat(description,number, date)) <=1 then 'y', else'' end 这样计数。

但我收到错误。我正在尝试连接三列,并希望返回一行在 col 中出现的次数。你能给些建议么

标签: sqlcountcaseconcat

解决方案


如果您按连接的字符串分组,您已经获得了所有不同的组合。只需再添加一个字段即可知道每行出现多少次 sum(1) 或 count(1)/count(*)。

编辑

SELECT concat(t1.description,t1,number, t1.date) AS UID,
CASE WHEN t2.NUM_TIMES_UID <= 1 THEN 'y' ELSE 'dummy' END AS DUMMY_VAR
FROM table t1
LEFT JOIN (
     SELECT
         concat(description,number, date) AS UID,
         SUM(1) AS NUM_TIMES_UID
     FROM table
     GROUP BY
         concat(description,number, date)
) t2 ON (concat(t1.description,t1,number, t1.date) = concat(t2.description,t2,number, t2.date))

推荐阅读