基于列的字符串长度比较的查询计数结果

时间:2017-07-26 15:07:04

标签: mysql

我有一个看起来像这样的表:

| id | message                                                    | status |
|----|------------------------------------------------------------|--------|
| 1  | Lorem ipsum dolor sit amet                                 | pass   |
| 2  | Lorem ipsum dolor sit amet, consectetur                    | fail   |
| 3  | Lorem ipsum dolor sit amet, consectetur adipisicing elit   | fail   |
|    | Lorem ipsum dolor sit amet, consectetur adipisicing elit   |

我希望能够按状态选择分组记录数。当消息字符串长度超过一定数量时,我希望它对计数的贡献为ceil(message_length/certain_number)。例如,第3个消息长度超过70个字符。因此,它应该被计为2而不是1。

我应该怎么做?

我尝试过以下查询,我在消息字符串上使用group_concat,但我知道这是一个错误的解决方案。

select ceil((char_length(group_concat(`message`)) - (count(`message`) - 1))/70) as count, `status` from `table` group by `status` 

- (count(message) - 1)部分用于考虑group_concat函数引入的逗号。

查询的预期结果是:

| count | status |
|-------|--------|
|   1   |  pass  |
|   3   |  fail  |

1 个答案:

答案 0 :(得分:0)

以下查询给了我解决方案:

jpegCallback

我不知道那么简单。