如何使用java在sql表的一列中计算不同的值

如何使用java在sql表的一列中计算不同的值,java,sql,Java,Sql,我有一种情况,我必须在一个表的一列中计算相同类型的字符串的数量,例如,一列将具有诸如a=不存在p=存在这样的值 A A A P P P P P P P A A A P P P P P A 所以我需要对所有相同类型的字符串进行计数,比如p i.e Present,这意味着查询应该给出计数结果7。 什么是idol查询呢?我认为这是我能想到的最简单的查询,可以用SQL从Attentience='p' 更新: 确保在Java代码中使用prepared语句的参数化格式,以防止SQL注入 SELECT at

我有一种情况,我必须在一个表的一列中计算相同类型的字符串的数量,例如,一列将具有诸如a=不存在p=存在这样的值

A A A P P P P P P P A A A P P P P P A 所以我需要对所有相同类型的字符串进行计数,比如p i.e Present,这意味着查询应该给出计数结果7。
什么是idol查询呢?

我认为这是我能想到的最简单的查询,可以用SQL
从Attentience='p'

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

SELECT attendance, COUNT(*)
FROM Roster
GROUP BY attendance;
将为您提供列中每个值的计数。因此,对于具有4个a值和7个P值的表,查询将返回

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

<强> >:<强> >因为您的表在其出勤栏中有重复的值,所以您应该考虑将所有可能的值都放在自己的“枚举”中。SQL不提供枚举,但有几种方法可以实现类似的效果

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

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

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