一 : Matlabzeros用法
创建一个元素全为0的矩阵,比如a=zeros(3,5);就是创建一个3行5列的0矩阵。希望能帮到你。二 : RAISE_APPLICATION_ERROR用法
可能不是很多人知道 RAISE_APPLICATION_ERROR 的用途是什么,虽然从字面上已经猜到这个函数是干什么用的。(www.61k.com)平时用来测试的异常处理
我们都是通过dbms_output.put_line来输出异常信息,但是在实际的应用中,需要把异常信息返回给调用的客户端。
其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序(其他机器上的SQLPLUS或者其他前台开发语言)
RAISE_APPLICATION_ERROR 的声明:
PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);
里面的错误代码和内容,都是自定义的。说明是自定义,当然就不是系统中已经命名存在的错误类别,是属于一种自定义事务错误类型,才调用此函数。error_number_in 之容许从 -20000 到 -20999 之间,这样就不会与 ORACLE 的任何错误代码发生冲突。error_msg_in 的长度不能超过 2k,否则截取 2k。
举个例吧:
阻止小于18岁的用户增加到数据库 employee 表中
CREATE OR REPALCE TRIGGER minimun_age_check
BEFORE INSERT ON employee
FOR EACH ROW
BEGIN
IF ADD_MONTHS( :new.birth_date, 18*12) > SYSDATE
THEN
RAISE_APPLICATION_ERROR(-20001, 'Employees must at least eighteen years of age.');
END IF;
END;
DECLARE
no_babies_allowed EXCEPTION;
/**//*将名称与用于触发器中的错误号码关联起来*/
PRAGMA EXCEPTION_INIT(no_babies_allowed, -20001);
BEGIN
INSERT INTO employee .;
EXCEPTION
WHEN no_babies_allowed
THEN
扩展:python raise用法 / raise的用法 / raise用法
扩展:python raise用法 / raise的用法 / raise用法
三 : group_by用法
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想
你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示
A B
1 abc
1 bcd
1 asdfg
select A,B from table group by A
你说这样查出来是什么结果,
A B
abc
1 bcd
asdfg
右边3条如何变成一条,所以需要用到聚合函数,比如
select A,count(B) 数量 from table group by A
这样的结果就是
A 数量
1 3 group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
Group by 是SQL Server 中常用的一种语法,语法如下:
[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
[ WITH { CUBE | ROLLUP } ]
]
1、最常用的就是这种语法,如下:
Select CategoryID, AVG(UnitPrice), COUNT(UnitPrice)
FROM dbo.Products Where UnitPrice > 30
GROUP BY CategoryID
ORDER BY CategoryID DESC
这个语句查询出,所有产品分类的产品平均单价,单价计数。并且单价在 30 以上的记录。
2、再看看这种语法,如下:
Select CategoryID, AVG(DISTINCT UnitPrice), COUNT(DISTINCT UnitPrice)
FROM dbo.Products Where UnitPrice > 30
GROUP BY CategoryID
ORDER BY CategoryID DESC
使用 DISTINCT 的时候,将会去除重复的价格平均单价。
3、如果希望在分类统计之后,再使用条件过滤,下面的语句可以做为参数:
Select CategoryID, SUM(UnitPrice) AS SumPrice
FROM dbo.Products
GROUP BY CategoryID
HAVING SUM(UnitPrice) > 300
HAVING 与 Where 语句类似,Where 是在分类之前过滤,而 HAVING 是在分类之后过滤。 它和 Where 一样使用 AND、OR、NOT、LIKE 组合使用。
4、如果希望再在分类统计中,添加汇总行,可以使用以下语句:
Select CategoryID, SUM(UnitPrice), GROUPING(CategoryID) AS 'Grouping' FROM dbo.Products
GROUP BY CategoryID WITH ROLLUP
Grouping 这一列用于标识出哪一行是汇总行。
它使用 ROLLUP 操作添加汇总行。
5、如果使用 WITH CUBE 将会产生一个多维分类数据集,如下:
Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPrice
FROM dbo.Products
GROUP BY CategoryID, SupplierID WITH CUBE
它会产生一个交叉表,产生所有可能的组合汇总。
6、使用 ROLLUP CUBE 会产生一个 NULL 空值,可以使用以下语法解决,如下: Select CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1'
ELSE SupplierID
END AS SupplierID,
SUM(UnitPrice) AS QtySum
FROM dbo.Products
GROUP BY SupplierID WITH CUBE
它首先检查当前行是否为汇总行,如果是就可以设置一个值,这里设置为 '-1' 。
四 : group_by用法
GROUP BY 用 法
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想
你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示
A B
1 abc
1 bcd
1 asdfg
select A,B from table group by A
你说这样查出来是什么结果,
A B
abc
1 bcd
asdfg
右边3条如何变成一条,所以需要用到聚合函数,比如
select A,count(B) 数量 from table group by A
这样的结果就是
A 数量
1 3
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
你的问题应该这么解决,具体的我没有上机操作,DISTINCT有可能放到ID前面,你在具体操作下:
SELECT ID,DISTINCT NAME
FROM TAB;
group by 用法 group_by用法
对于SELECT语句完整的句法如下:
SELECT[DISTINCT] 目标表的列名或列表达式序列--------必写项(其中DISTINCT是去掉重复的数据项)
FROM 基本表名和(或)试图序列----------------------必写项
[WHERE 行条件表达式]
[GROUP BY 列名序列[HAVING 组条件表达式]]
[ODER BY 列名[ASC/DESC]]------------------ASC升序排列,DESC降序排列
---------------------------------------------------------------由于你在问题题目中提到了GROUP BY 的用法,下面就介绍一部分。(www.61k.com]
在数据库中,我们可以使用GROUP BY函数把数据组合在一起,从而获得总计信息。可以把此功能看成是一种当数据从数据库中返回时把相同类型的信息集中到一起的能力。下面给出了完整列表。
avg([distinct]column_name)
求所有雇员薪水的平均值。
select AVG(emp_salary)
from employee;
求取column_name中的所有值的平均值。如果使用DISTINCT选项,则只使用不同的非空的数值。
count([distinct]value)
统计雇员的数目。
select COUNT(emp_name)
from employee;
统计选择行的数目,并忽略VALUE中的空值。如果使用了DISTINCT选项
则只统计不同的非空数值。VALUE可以是列名,也可以是表达式。
max(value)
返回薪水的最大值
select MIN
emp_salary)
from employee;
从选定的VALUE中选出数值/字符的最大值,忽略空值。VALUE要求同上。
min(value)
返回薪水的最小值
select MIN(emp_salsry)
from employee;
从选定的VALUE中选出数值/字符的最小值,忽略空值。VALUE要求同上。
stddev(value)返回雇员薪水的标准偏差
select STDDEV(emp_salary)
from employee;
从选择的VALUE的标准中返回标准偏差。
group by 用法 group_by用法
variance([distinct]value)
返回雇员薪水的方差
select VARIANCE(emp_salary)
from employee;
返回所选行的所有数值的方差,忽略VALUE的空值。(www.61k.com]DISTINCT和VALUE要
求同前。
1.没有group by子句的group by函数。注意到上面的所有示例都没有使用GROUP BY命令了吧?当在查询中没有使用GROUP BY子句时,数据库就把数据表中的所有行为作为一个组来处理。通常情况下,我们并不希望是这样的。多数用户都能理解组的概念,但在使用的时候却很快就陷入麻烦中。有一个技巧是:如果有一列在GROUP BY子句中没有提到,就必须对它进行累计。换句话说,就是必须对那些不包括在GROUP BY子句中的所有列使用上面提到过的一个函数。
2.having子句。就象使用where子句检查从查询返回的个别行一样,我们也可以使用having子句为一组行指定搜索条件。例如,如果想要察看新雇佣人数超过两个的州的平均工资,就可以使用having子句。查询语句如下所示:
select state_cd,avg(salsry)
from newhire
group by state_cd
having count(state_cd) > 2;
3.可以使用group by查找重复数据。|
|思想都是先查出重复数据再操作。
4.可以使用group by删除重复数据。|
端午节将至,愿你(包括我)在一生中有用不完的MONEY ,以后的日子风和日丽,风调雨顺,偶尔有人请吃饭,平时经常有人给你送礼,有人逗你开心,想揍谁就揍谁,永远有个最善良的爱人,在你最需要的时候有爱,没事时听听歌,寂寞时和朋友 电话短信,有时间时和朋友一起喝喝茶…咖啡…酒… 这样你就会永远开心,天天好情!提前祝端午节快乐
本文标题:用法-Matlabzeros用法61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1