2

例如,我有一种情况,我必须计算表的一列中相同类型的字符串数。一列将具有诸如 A=absent P=present 之类的值

AAAPPPPPPPA

所以我需要计算所有相同类型的字符串,比如 P ie Present 这意味着查询应该给出计数结果 7。什么可以是偶像查询?

4

2 回答 2

3

我认为这是我能想到的最简单的 SQL 查询Select count(*) from table where attendence='P'

更新: 确保在 Java 代码中使用准备好的语句的参数化格式以防止 SQL 注入。

于 2013-08-26T16:06:30.610 回答
3
SELECT attendance, COUNT(*)
FROM Roster
GROUP BY attendance;

将为您提供列中每个值的计数。因此,对于具有 4 个 A 值和 7 个 P 值的表,查询将返回

attendance | COUNT(*)
___________|_________
           |
A          | 4
P          | 7

另外:由于您的表在其出勤列中有重复的值,您应该考虑将所有可能的出勤值提取到它们自己的“枚举”中。SQL 不提供枚举,但有几种方法可以达到类似的效果。

一种方法是创建一个查找表,其中包含一个 ID 列(可以是自动增量),以及您想要的出勤值。然后,在您的名册表中,使用外键来引用正确值的 ID。

为了将来节省时间,您可以创建一个使用出勤值而不是 ID 的视图。

如果您对改进数据库设计感兴趣,可以阅读Database Normalization 。

于 2013-08-26T16:07:56.833 回答