Sql 在不使用内置计数(*)函数的情况下进行计数
如果不使用内置的Sql 在不使用内置计数(*)函数的情况下进行计数,sql,oracle,Sql,Oracle,如果不使用内置的COUNT函数,如何根据条件对表中的字段进行计数?有办法做到这一点吗 要求如下: 创建一个名为findtotalcarmodels的PL/SQL函数来返回总数 属于特定车型的汽车数量。该函数应该有一个 在参数中作为模型名称。然后应该使用显式游标来计算 属于该车型的汽车数量,并返回最终计数。你不能 使用任何隐式游标、表联接、子查询、集合运算符、组函数或SQL 用于创建此函数的函数(如COUNT)。SUM(1或0结束时的情况) SUM(CASE WHEN <condition
COUNT
函数,如何根据条件对表中的字段进行计数?有办法做到这一点吗
要求如下:
创建一个名为findtotalcarmodels的PL/SQL函数来返回总数
属于特定车型的汽车数量。该函数应该有一个
在参数中作为模型名称。然后应该使用显式游标来计算
属于该车型的汽车数量,并返回最终计数。你不能
使用任何隐式游标、表联接、子查询、集合运算符、组函数或SQL
用于创建此函数的函数(如COUNT)。SUM(1或0结束时的情况)
SUM(CASE WHEN <condition on your fields> THEN 1 ELSE 0 END)
求和(1或0结束时的情况)
求和(1或0结束时的情况)
求和(1或0结束时的情况)
这可能是我写的最愚蠢的答案。业内没有人像这样工作
答案如下:
CREATE OR REPLACE FUNCTION findtotalcarmodels
( model_name IN VARCHAR2)
IS
CURSOR mycur IS
SELECT model_name_col FROM car_table;
mycount INTEGER := 0;
current_model_name VARCHAR2(10);
BEGIN
OPEN mycur;
FETCH mycur INTO current_model_name;
WHILE mycur%FOUND LOOP
IF current_model_name = model_name THEN
mycount := mycount + 1;
END IF;
FETCH mycur INTO current_model_name;
END LOOP;
CLOSE mycur;
dbms_output.put_line('The count is ' || mycount);
END;
/
这可能是我写的最愚蠢的回答。业内没有人像这样工作 答案如下:
CREATE OR REPLACE FUNCTION findtotalcarmodels
( model_name IN VARCHAR2)
IS
CURSOR mycur IS
SELECT model_name_col FROM car_table;
mycount INTEGER := 0;
current_model_name VARCHAR2(10);
BEGIN
OPEN mycur;
FETCH mycur INTO current_model_name;
WHILE mycur%FOUND LOOP
IF current_model_name = model_name THEN
mycount := mycount + 1;
END IF;
FETCH mycur INTO current_model_name;
END LOOP;
CLOSE mycur;
dbms_output.put_line('The count is ' || mycount);
END;
/
这可能是我写的最愚蠢的回答。业内没有人像这样工作 答案如下:
CREATE OR REPLACE FUNCTION findtotalcarmodels
( model_name IN VARCHAR2)
IS
CURSOR mycur IS
SELECT model_name_col FROM car_table;
mycount INTEGER := 0;
current_model_name VARCHAR2(10);
BEGIN
OPEN mycur;
FETCH mycur INTO current_model_name;
WHILE mycur%FOUND LOOP
IF current_model_name = model_name THEN
mycount := mycount + 1;
END IF;
FETCH mycur INTO current_model_name;
END LOOP;
CLOSE mycur;
dbms_output.put_line('The count is ' || mycount);
END;
/
这可能是我写的最愚蠢的回答。业内没有人像这样工作 答案如下:
CREATE OR REPLACE FUNCTION findtotalcarmodels
( model_name IN VARCHAR2)
IS
CURSOR mycur IS
SELECT model_name_col FROM car_table;
mycount INTEGER := 0;
current_model_name VARCHAR2(10);
BEGIN
OPEN mycur;
FETCH mycur INTO current_model_name;
WHILE mycur%FOUND LOOP
IF current_model_name = model_name THEN
mycount := mycount + 1;
END IF;
FETCH mycur INTO current_model_name;
END LOOP;
CLOSE mycur;
dbms_output.put_line('The count is ' || mycount);
END;
/
DCOUNT
需要更多的爱这只是一个学术练习,还是你有这样做的理由?学术。从专业角度来说,我不会这么做。DCOUNT
需要更多的爱这只是一个学术练习,还是你有理由这么做?学术。从专业角度来说,我不会这么做。DCOUNT
需要更多的爱这只是一个学术练习,还是你有理由这么做?学术。从专业角度来说,我不会这么做。DCOUNT
需要更多的爱这只是一个学术练习,还是你有理由这么做?学术。从专业角度来说,我不会这么做。