我有一种情况,我必须在一个表的一列中计算相同类型的字符串数,例如。列将具有诸如A =缺席P =存在
之类的值A A A P P P P P P P A
所以我需要计算所有相同类型的字符串,如P即Present表示查询应该给出计数结果7。 偶像可以查询什么?
答案 0 :(得分:3)
我认为这是我在SQL Select count(*) from table where attendence='P'
<强>更新强> 确保在Java代码中使用参数化格式的预准备语句以防止SQL注入。
答案 1 :(得分:3)
SELECT attendance, COUNT(*)
FROM Roster
GROUP BY attendance;
将为您提供列中每个值的计数。因此,对于具有4个A值和7个P值的表,查询将返回
attendance | COUNT(*)
___________|_________
|
A | 4
P | 7
旁白:由于您的表在其出勤列中具有重复值,因此您应该考虑将所有可能的出勤值拉入他们自己的“枚举”类别中。 SQL不提供枚举,但有几种方法可以实现类似的效果。
一种方法是创建一个包含ID列(可以是自动增量)的查找表,以及您想要出席的值。然后,在您的Roster表中,使用外键来引用正确值的ID。
为了节省您将来的时间,您可以创建一个使用出勤值而不是ID的视图。
如果您对改进数据库的设计感兴趣,可以阅读Database Normalization。