Sum()函数在MySql中不起作用 [英] Sum() function is not working in MySql
问题描述
SET _SumRating = (SELECT SUM(RatingCount) from tblSpeakerRatings where SpeakerId = _SpeakerID);
在这里,我选择RatingCount
的总和并将其加载到_SumRating
,
我可以知道这是什么错误吗?我使用的是存储过程,并且已将_SumRating
声明为OUT
variable.
Here i am selecting sum of RatingCount
and loading that into _SumRating
,
May i know what is the mistake in this? I am using this is Stored Procedure and already declared _SumRating
as OUT
variable.
推荐答案
MySQL SUM function is used to find out the sum of a field in various records.
To understand SUM function, consider an employee_tbl table, which is having the following records:
mysql> SELECT * FROM employee_tbl;
+ ------ + ------ + ------------ + -------------------- +
| id |名称|工作日期| daily_typing_pages |
+ ------ + ------ + ------------ + -------------------- +
| 1 |约翰| 2007-01-24 | 250 |
| 2 |拉姆| 2007-05-27 | 220 |
| 3 |杰克| 2007-05-06 | 170 |
| 3 |杰克| 2007-04-06 | 100 |
| 4 |吉尔| 2007-04-06 | 220 |
| 5 | Zara | 2007-06-06 | 300 |
| 5 | Zara | 2007-02-06 | 350 |
+ ------ + ------ + ------------ + -------------------- +
设置7行(0.00秒)
现在,假设您要基于上表来计算所有Dialy_typing_pages的总数,那么可以使用以下命令进行计算:
mysql> SELECT SUM(daily_typing_pages)
-> FROM employee_tbl;
+ ------------------------- +
| SUM(daily_typing_pages)|
+ ------------------------- +
| 1610 |
+ ------------------------- +
设置1行(0.00秒)
您可以使用GROUP BY子句获取各种记录集的总和.以下示例将汇总与一个人相关的所有记录,您将拥有每个人的总打字页面.
mysql> SELECT名称,SUM(daily_typing_pages)
-> FROM employee_tbl GROUP BY名称;
+ ------ + ------------------------- +
|名称| SUM(daily_typing_pages)|
+ ------ + ------------------------- +
|杰克| 270 |
|吉尔| 220 |
|约翰| 250 |
|拉姆| 220 |
| Zara | 650 |
+ ------ + ------------------------- +
设置5行(0.17秒)
::用于求和函数的基本Mathod是::从表名中选择SELECT SUM(column_name);
现在,我想您可能会有所想法,但是如果仍然缺少任何内容,则可以此 [ ^ ], ^ ]和^ ]链接.
我认为这可能对您有所帮助.
mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id | name | work_date | daily_typing_pages |
+------+------+------------+--------------------+
| 1 | John | 2007-01-24 | 250 |
| 2 | Ram | 2007-05-27 | 220 |
| 3 | Jack | 2007-05-06 | 170 |
| 3 | Jack | 2007-04-06 | 100 |
| 4 | Jill | 2007-04-06 | 220 |
| 5 | Zara | 2007-06-06 | 300 |
| 5 | Zara | 2007-02-06 | 350 |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)
Now, suppose based on the above table you want to calculate total of all the dialy_typing_pages, then you can do so by using the following command:
mysql> SELECT SUM(daily_typing_pages)
-> FROM employee_tbl;
+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
| 1610 |
+-------------------------+
1 row in set (0.00 sec)
You can take sum of various records set using GROUP BY clause. Following example will sum up all the records related to a single person and you will have total typed pages by every person.
mysql> SELECT name, SUM(daily_typing_pages)
-> FROM employee_tbl GROUP BY name;
+------+-------------------------+
| name | SUM(daily_typing_pages) |
+------+-------------------------+
| Jack | 270 |
| Jill | 220 |
| John | 250 |
| Ram | 220 |
| Zara | 650 |
+------+-------------------------+
5 rows in set (0.17 sec)
:: Basic Mathod for Sum function is :: SELECT SUM(column_name) FROM table_name;
Now, I think you might get idea, but still if anything is missing then you can This[^], This[^] and This[^] Links.
I think it might be helpful to you.
可能是您在参数之前缺少@符号.
这样声明
_SumRating @ NVARCHAR(2000)输出
然后像这样设置
SET @_SumRating =(从tblSpeakerRatings中选择SUM(RatingCount),其中SpeakerId = _SpeakerID);
-SG
May be you are missing the @ symbole before your parameter.
Declare like this
_SumRating@ NVARCHAR(2000) OUTPUT
and then set like this
SET @_SumRating = (SELECT SUM(RatingCount) from tblSpeakerRatings where SpeakerId = _SpeakerID);
-SG
这篇关于Sum()函数在MySql中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!