SQL查询问题:按指定列与时间统计特定短语出现次数
嘿,我看你是要在现有库存接收统计的基础上,加上特定设备类型短语的计数对吧?结合你的表结构和已有SQL,我给你整理了两种常用的解决方案:
特定短语在指定时间范围的出现次数统计方案
1. 精确匹配特定设备类型
如果你需要统计equipmentType完全等于某个特定短语(比如'Desktop Computer')的记录数,同时保留原有的库存接收筛选条件(未发货shippingAt IS NULL + 预订时间在指定区间),可以这样修改你的SQL:
SELECT g1.equipmentType, COUNT(*) as count FROM `table` g1 WHERE g1.shippingAt IS NULL AND g1.bookingAt BETWEEN :from AND :to AND g1.equipmentType = '你的特定短语' -- 替换成你要统计的具体短语 GROUP BY g1.equipmentType;
2. 模糊匹配包含特定短语的记录
如果你的需求是统计equipmentType中包含某个特定短语(比如包含'Pro'的设备类型)的记录数,就用LIKE配合通配符%来实现:
SELECT g1.equipmentType, COUNT(*) as count FROM `table` g1 WHERE g1.shippingAt IS NULL AND g1.bookingAt BETWEEN :from AND :to AND g1.equipmentType LIKE '%你的特定短语%' -- %匹配任意长度的字符,前后都加表示包含该短语 GROUP BY g1.equipmentType;
额外小技巧
- 要是你需要同时统计多个特定短语的出现次数,用
IN关键字就能一次性搞定(精确匹配场景):
分组后会分别展示每个短语对应的计数。AND g1.equipmentType IN ('短语A', '短语B', '短语C') - 注意你的表名用了反引号
table包裹是对的,因为table是SQL的保留关键字,直接用会报错。
内容的提问来源于stack exchange,提问作者grda
相关产品推荐
相关产品推荐

