我试图计算特定序列发生的次数。说一个列 - 'testC'在表格中 - 'testT'作为字符,如'DS-PP','WQ-PP','FF-PP','DS-PP','DS-PP','FF -PP” 我希望结果像
DS-PP - 3
FF-PP - 2
WQ-PP - 1
我怎样才能做到这一点。到目前为止我已经
了SELECT count(testC) from testT where testC like '%-PP%' group by testC
这给了我数,但没有说明。我需要在select中添加一些东西以获得DS-PP等等
注意:testC列可以包含任何内容(它是文本字段) - “DP-PP在这里”。我希望它只显示DP-PP而不是整个句子是可能的。
答案 0 :(得分:2)
WHERE testC
条款吗?你错过了选择testC
。
SELECT testC, count(testC) from testT WHERE testC like '%-PP%' group by testC
你的第二个建议。你可以先找到-PP然后减去这样的字符:
select substr(TestC, locate('-pp', TestC) - 2, 5) as testc, count(*)
from testT
where locate('-pp', TestC) > 2
group by substr(TestC, locate('-pp', TestC) - 2, 5)
答案 1 :(得分:1)
您需要在TestC
:
select
SELECT TestC, count(testC)
from testT
where testC like '%-PP%'
group by testC
编辑:
绝对是一个更合理的问题。
select substr(TestC, locate('-pp', TestC) - 2, 5), count(*)
from testT
where locate('-pp', TestC) > 2
group by substr(TestC, locate('-pp', TestC) - 2, 5)
这假设您需要'-pp'
之前的两个字符。它过滤掉'-pp'
在第一个或第二个字符上开始的所有行。