我的数据库中有一个表,我想根据计数从中获取数据
我的表名是syncbill
,列是Cancelled
和Noofprints
,我试图写一个查询来获取cancelled
和{{1}的计数}使用单个查询
noofbills
Y
的数量,其中noofprints> 1 我正在使用
noofprints
此查询,但它为我提供了相同的计数
任何人在这里都请指导我
答案 0 :(得分:2)
您可以将sum()
与大小写一起使用
SELECT
sum(CASE WHEN CANCELLED <> 'Y' THEN 1 else 0 END) AS canceledbill,
sum(CASE WHEN NOOFPRINTS > 1 THEN 1 else 0 END) AS duplicatebill
FROM table_name;
答案 1 :(得分:1)
使用条件聚合:
SELECT
COUNT(CASE WHEN CANCELLED <> 'Y' THEN 1 END) AS cancelledbill,
COUNT(CASE WHEN NOOFPRINTS > 1 THEN 1 END) AS duplicatebill
FROM yourTable;
如果您实际使用的是MySQL,则可以将以上内容简化为:
SELECT
SUM(CANCELLED <> 'Y') AS cancelledbill,
SUM(NOOFPRINTS > 1) AS duplicatebill
FROM yourTable;
答案 2 :(得分:0)
使用CASE WHEN
表达式
select
sum(case when CANCELLED <> 'Y' then 1 else 0 end) AS cancelledbill,
sum(case when NOOFPRINTS > 1 then 1 else 0 end) AS duplicatebill
FROM tablename;