⑴ 连续以天为单位查询数据库连续的数据
首先, 如果日期是 2011年8月1日。
那么 ymd2 与 ymd3 将计算错误.
ymd1 = yyy & "年" & mmm & "月" & ddd & "日键液"
ymd2 = yyy & "年" & mmm & "月" & ddd - 1 & "日"
ymd3 = yyy & "年" & mmm & "月" & ddd - 2 & "日"
s1 = 0
s2 = 0
s3 = 0
strConnAcc = "罩亮穗select * from 黄色高温预警 where 年月日= '" & ymd1 & "'and 站点='" & righ(ii) & " '"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If RsAcc.RecordCount > 0 Then ' 第一天,如果记录存在
s1 = 1
End If
RsAcc.Close
strConnAcc = "select * from 黄色高温预警 where 年月日= '" & ymd2 & "'and 站点='" & righ(ii) & " '"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If RsAcc.RecordCount > 0 Then '第二天,如果记录存在
s2 = 1
End If
RsAcc.Close
strConnAcc = "select * from 黄色高温预警 where 年月日= '" & ymd3 & "'and 站点='" & righ(ii) & " '"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If RsAcc.RecordCount > 0 Then '第物卜三天,如果记录存在
s3 = 1
End If
RsAcc.Close
这里 通过 s1 s2 s3 来 判断 ss 最后的结果.
⑵ 数据库中如何使用sql查询连续号码段
在ITPUB上有一则非常巧妙的SQL技巧 学习一下 记录在这里
拦宽最初的问题是这样的:
我有一个表结构 fphm kshm
(第二个字段内可能是连续的数据 可能存在断点 )
怎样能查询出来这样基衡裂的结果 查询出搏闭连续的记录来 就像下面的这样?
ITPUB上的朋友给出了一个非常巧妙的答案:
SQL> SELECT b fphm MIN (b kshm) Start_HM MAX (b kshm) End_HM FROM (SELECT a * TO_NUMBER (a kshm ROWNUM) cc FROM (SELECT * FROM t ORDER BY fphm kshm) a) b GROUP BY b fphm /
FPHM START_HM END_HM
巧思妙想 就在一念之间 lishixin/Article/program/Oracle/201311/17496
⑶ SQL数据库中查询连续编号的的数据。
DECLARE@T1table(UserIDint,[name]nvarchar(50),numint);
insertinto@T1(UserID,[name],num)values(1001,'a',8)
insertinto@T1(UserID,[name],num)values(1002,'b',6)
insertinto@T1(UserID,[name],num)values(1003,'c',8)
insertinto@T1(UserID,[name],num)values(1004,'a',8)
insertinto@T1(UserID,[name],num)values(1005,'b',8)
select*from@t1
selecta.*from
(selectUserID,[name],[num]from@t1)ajoin
(selectUserID,[name],[num]from@t1)bona.UserID<b.UserIDanda.UserID+1=b.UserID
anda.num=b.num
groupbya.userid,a.[name],a.[num]
得到结果:1003c8
1004a8
⑷ 数据库中count的用法
数据库中count的用法的用法你知道吗?下面我就跟你们详细介绍下数据库中count的用法的用法,希望对你们有用。
数据库中count的用法的用法如下:
count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在MySQL中count函数用法与性能比较吧。count(*) 它返回检索行的数目, 不论其是否包含 NULL值。
SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度。
例如:SELECT COUNT(*) FROM student;
COUNT(DISTINCT 字段),返回不同的非NULL值数目;若找不到匹配的项,则COUNT(DISTINCT)返回 0 。
这个优化仅适用于 MyISAM表, 原因是这些表类型会储存一个函数返回记录的精确数量,而且非常容易访问。
对于事务型的存储引擎(InnoDB, BDB), 存储一个精确行数的问题比较多,原因是可能会发生多重事物处理,而每个都可能会对行数产生影响。
例, 创建用于测试的数据表,以进行count数据统计:
CREATE TABLE `user` (
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`password` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
测试数据为:
1 name1 123456
2 name2 123456
3 name3 123456
4 name4 NULL
请注意以下查询的返回结果:
1,select count(*) from `user`
2,select count(name) from `user`
3,select count(password) from `user`
输出结果:4,4,3
原因分析:
1,count(*)是对行数目进行计数,所以结果为4。
2,count(column_name)是对列中不为空的行进行计数,所以count(name)=4,而count(password)=3。
以上二点,在使用count函数时,要注意下。
使用GROUP BY对每个owner的所有记录分组,没有它,你会得到错误消息:
mysql> SELECT owner, COUNT(*) FROM pet;
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...)
with no GROUP columns is illegal if there is no GROUP BY clause
COUNT( )和GROUP BY以各种方式分类你的数据。下列例子显示出进行动物普查操作的不同方式。
每种动物的数量:
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
+---------+----------+
| species | COUNT(*) |
+---------+----------+
| bird | 2 |
| cat | 2 |
| dog | 3 |
| hamster | 1 |
| snake | 1 |
+---------+----------+
每种性别的动物数量:
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
+------+----------+
| sex | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+
(在这个输 出中,NULL表示“未知性别”。)
按种类和性别组合的动物数量:
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | NULL | 1 |
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
若 使用COUNT( ),你不必检索整个表。例如, 前面的查询,当只对狗和猫进行时,应为:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE species = 'dog' OR species = 'cat'
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
+---------+------+----------+
或, 如果你仅需要知道已知性别的按性别的动物数目:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE sex IS NOT NULL
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
顺便提下mysql的DISTINCT的关键字有很多你想不到的用处
1.在count 不重复的记录的时候能用到
比如SELECT COUNT( DISTINCT id ) FROM tablename;
就是计算talbebname表中id不同的记录有多少条
2,在需要返回记录不同的id的具体值的时候可以用
比如SELECT DISTINCT id FROM tablename;
返回talbebname表中不同的id的具体的值
3.上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义
比如SELECT DISTINCT id, type FROM tablename;
实际上返回的是 id与type同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得id与tyoe都相同的才被排除了,与我们期望的结果不一样
4.这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的
5.其实还有另外一种解决方式,就是使用
SELECT id, type, count(DISTINCT id) FROM tablename
虽然这样的返回结果多了一列无用的count数据(或许你就需要这个我说的无用数据)
返回的结果是 只有id不同的所有结果和上面的4类型可以互补使用,就是看你需要什么样的数据了
⑸ 用sql语句统计数据库某个字段中相同的数据有多少条
1、可通过分组和组内计数来实现,语句如下:
select a, count(*) from A Group by a
2、用Group By分组:
Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。
这里,分组字段是a,所以数据集分成了你、我、他三个组。然后用Count(*)分别按照各个组来统计各自的记录数量。
3、Count(*)函数:
Count(*) 函数返回表中的记录数。注意它和Group by连用,返回组内记录数。
’
(5)数据库连续计数扩展阅读:
select count(*)和select count(1)的区别
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的。
假如表没有主键(Primary key), 那么count(1)比count(*)快。
如果有主键的话,那主键作为count的条件时候count(主键)最快。
如果你的表只有一个字段的话那count(*)就是最快的。
count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计。
网络.Group by
⑹ mysql数据库计数count
selectfdate,sum(casewhenres='合格碰胡配'then1else0end笑指)as'合做高格',sum(casewhenres='不合格'then1else0end)as'不合格'
⑺ C#中如何对数据库中的数据进行计数
int=a,b,c
a+b=c
⑻ 数据库中count 命令 怎么用来,高手来帮忙提示下,谢谢了
一、统计行数
SELECT COUNT(*) FROM TABLE_NAME WHERE 条件
二、统计某个字段非空值的个数(只有该唤氏桐字段值不为NULL才被计数)
SELECT COUNT(FIELD_NAME) FROM TABLE_NAME WHERE 条件
三、统计某个字段不同值的个数(重复值和坦只被计数一次)
SELECT COUNT(DISTINCT FIELD_NAME) FROM TABLE_NAME WHERE 条件
其中“WHERE 条件”不是必须的,建议你每个都自己尝试核弯几次,找好感觉。
祝你好运!
⑼ access数据库 如何进行计算总数的查询
1、可以使用Microsoft Access 所提供的预定义计算或自定义的计算。
使用所谓“总计”的预定义计算,可计算出记录组或全部 记录的下列量值:总和(Sum)、平均值(Avg)、数量(Count)、最小值(Min)、最大值(Max)、 标准偏差(StDev)或方差(Var)。可以对每个字段选择要进行的总计计算。
2、合计函数Count 在计算时不能包括有空值 (Null) 的记录。
例如,Count 函数返回所有 无 Null 值记录的数量,有一种方法可以对 Null 值进行计数,另外也可以将 Null 值转换为零以便进行计算。如果要查找包含 Null 值的记录总数,请在 Count 中使用用 星号 (*) 通配符。
3、在字段中显示计算结果时,结果实际并不存储在基准窗体中。
相反,Microsoft Access 在每次执行查询时都将重新进行计算,以使计算结果永远都以数据库中最新的数据为准。因此,不能人工更新计算结果。