我正在尝试将mysql
数据库中的数据分组,其中column_1为第一个值,column_2为sub,使其成为一对,因此我的想法是使用两列对它们进行分组。
"SELECT * FROM products GROUP BY column_1,column_2"
现在我的问题是column_2值因缩写而异
示例Apple
有时候是Apl
所以并非每个数据都按照我的计划进行分组,但是后缀与数据示例AppleCS
和AplCS
相同,因此我们的想法是捕获column_2的最后两个字符,末尾为CS
或SS
现在回到对mysql进行分组,我无法弄清楚如何执行,所以逻辑语句如下。
"SELECT * FROM products GROUP BY column_1 and column_2 that ends with `CS` OR `SS`
最后一部分是捕获重复的条目,所以我需要计算每个返回为true的数据,这会添加查询字符串。
"SELECT *,COUNT(*) AS total FROM products GROUP BY column_1 and column_2 that ends with `CS` OR `SS`
我的目标
任何建议都会很棒,提前谢谢!
至于下面的参考解决了我的问题,但我仍然在寻找其他方法,如果仍然不是最好的方法。
SELECT *, COUNT(*) as total, RIGHT(column_2, 2) as sub FROM products GROUP BY column_1,sub ORDER BY total DESC
答案 0 :(得分:1)
这是你想要的吗?
SELECT
RIGHT(column_1, 2),
RIGHT(column_2, 2),
COUNT(*) AS cnt
FROM products
WHERE
RIGHT(column_1, 2) IN ('CS', 'SS') AND
RIGHT(column_2, 2) IN ('CS', 'SS')
GROUP BY
RIGHT(column_1, 2),
RIGHT(column_2, 2)
答案 1 :(得分:0)
捕获以“CS'”结尾的column_2的最后两个字符。或者' SS',你会写:
column_2 LIKE '%CSS' OR column_2 LIKE '%SS'
。我想知道回答你的问题。