count时不计算a,b,c字段数据相同的重复的记录
假如查询得到如下数据:
select a,b,c from table
| a | b | c |
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 2 | 2 | 0 |
现在执行select a,b,count(c) from table
| a | b | c |
| 1 | 1 | 1 |
| 2 | 2 | 2 |
若执行select a,b,count (distinct c) from table
| a | b | c |
| 1 | 1 | 1 |
| 2 | 2 | 1 |
注意,在count 函数中加了一个distinct,使相同的记录只被count一次。
INNER JOIN的操作
假如有3个表,table1,table2,table3,表中数据如下:
| a | b | c |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 1 | 3 | 3 |
| 2 | 4 | 4 |
| 5 | 5 | 5 |
| a | b | c |
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 1 | 1 |
| 4 | 1 | 1 |
| 5 | 1 | 1 |
| a | b |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
执行如下语句:
select database.table1.c,database.table2.b,database.table2.c,database.table3.b
from (database.table1 inner join database.table2 on database.table1.stn = database.table2.stn)
inner join database.table1 on database.table1.ka = database.table3.ka
得到结果如下:
| table1.c | table2.b | table2.c | table3.b |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 3 | 1 | 1 | 1 |
| 2 | 1 | 1 | 2 |
| 4 | 1 | 1 | 2 |
执行的是
table1.stn = table2.stn 而且 table1.ka = table3.ka,两个条件同时满足。
博客介绍了SQL相关操作,一是在count函数中使用distinct,可使a、b、c字段数据相同的重复记录只被count一次;二是展示了3个表table1、table2、table3的INNER JOIN操作,需同时满足table1.stn = table2.stn和table1.ka = table3.ka两个条件。

被折叠的 条评论
为什么被折叠?



