‘壹’ sql 找出指定日期范围最大值的资料
自关联一次,过滤不符合条件.
1. Create Table SLEEST_ANSWER And Init Data
CREATETABLE`sleest_answer`(
`date`datetimeDEFAULTNULL,
`user`varchar(10)DEFAULTNULL,
`correct`int(11)DEFAULTNULL,
`wrong`int(11)DEFAULTNULL,
`total_marker`int(11)DEFAULTNULL
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
INSERTINTO`sleest_answer`VALUES('2016-05-3012:00:00','User1',12,0,12),('2016-05-1809:00:00','User1',14,2,12),('2016-05-1721:00:00','User1',10,1,9),('2016-05-2413:15:00','User2',14,3,11),('2016-05-2713:15:00','User2',15,4,11),('2016-05-3014:00:00','User2',15,4,11),('2016-04-2916:00:00','User1',18,2,16);
2. Query Result
SELECTA.DATE,A.USER,A.CORRECT,A.WRONG,A.TOTAL_MARKER
FROMSLEEST_ANSWERALEFTJOINSLEEST_ANSWERB
ONA.USER=B.USER
AND(A.TOTAL_MARKER<B.TOTAL_MARKER
OR(A.TOTAL_MARKER=B.TOTAL_MARKERANDA.CORRECT<B.CORRECT)
OR(A.TOTAL_MARKER=B.TOTAL_MARKERANDA.CORRECT=B.CORRECTANDA.WRONG>B.WRONG)
OR(A.TOTAL_MARKER=B.TOTAL_MARKERANDA.CORRECT=B.CORRECTANDA.WRONG=B.WRONGANDA.DATE<B.DATE)
)
ANDB.DATEBETWEEN'2016-05-01'AND'2016-05-31'
WHERE1=1
ANDA.DATEBETWEEN'2016-05-01'AND'2016-05-31'
ANDB.USERISNULL
‘贰’ sql语句查询每日数据中的最大值
假设你表中的DATA_TIME字段是日期类型,如果是字符类型,需要对下列语句做修改
SQL SERVER
SELECT CONVERT(CHAR(8),DATA_TIME,112) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY CONVERT(CHAR(8),DATA_TIME,112)
ORDER BY 1
ORACLE
SELECT TRUNC(DATA_TIME) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY TRUNC(DATA_TIME)
ORDER BY 1
;
按照你的要求的话是不是要保留每条记录,然后每条记录再显示出当日的最大值?
如果是这样,SQL SERVER中需要原表和每日的最大值的嵌套表做关联;ORACLE用分析函数,下面是ORACLE的语句
SELECT TO_CHAR(DATA_TIME,'YYYY-MM-DD HH24:MI:SS') 时间,
DATA_DATA "当前值",
MAX(DATA_DATA) OVER(PARTITION BY TRUNC(DATA_TIME))"当日最大值"
FROM TABLE_NAME
ORDER BY 1;
‘叁’ sql中日期可以表示的最大值,和最小值是
如果类型是“datetime” 数据类型:
最大是9999年12 月31日
最小是1753年1月1日
如果类型是smalldatetime 数据类型
最大值是2079 年 6 月 6 日
最小值是1900 年 1 月 1 日
‘肆’ sql 按日期 取数值最大的
给你个思路:
WITH Messages (ID,ToEmpID,FromEmpID,SendDate,Detail) AS
(
SELECT 1,'张三','李四','2014/06/05','a' UNION ALL
SELECT 2,'王五','张三','2014/06/03','b' UNION ALL
SELECT 3,'刘六','张三','2014/06/02','b' UNION ALL
SELECT 4,'张三','李四','2014/05/05','a' UNION ALL
SELECT 5,'王五','张三','2014/05/03','b' UNION ALL
SELECT 6,'刘六','张三','2014/05/02','b'
)
SELECT ID,ToEmpID,FromEmpID,SendDate FROM Messages a
WHERE ID in
(
SELECT TOP 1 ID
FROM Messages
where ToEmpID=a.ToEmpID AND FromEmpID=a.FromEmpID
ORDER BY SendDate DESC
)
‘伍’ sql取日期最大的情况下 值最大的
有几种方式可以选择
(1)按照日期和d/c的倒叙排列,然后利用rownum取第一行,具体写法要测试
(2)子查询,先利用max(b)找到日期最大值,然后在等于日期最大值的情况下,找d/c的最大值。
(3)根据插入规律找日期,比如你是今天上午九点插入昨天的日期,那么只要过了9点你就sysdate-1,截取到日期,然后再吵最大值就行了。没过9点就sysdate-2,至于过没过9点,如果你要写过程的的话,价格判断就行。
‘陆’ SQL中如何选择表中日期最大值
给你个思路:
WITHMessages(ID,ToEmpID,FromEmpID,SendDate,Detail)AS
(
SELECT1,'张三','李四','2014/06/05','a'UNIONALL
SELECT2,'王五','张三','2014/06/03','b'UNIONALL
SELECT3,'刘六','张三','2014/06/02','b'UNIONALL
SELECT4,'张三','李四','2014/05/05','a'UNIONALL
SELECT5,'王五','张三','2014/05/03','b'UNIONALL
SELECT6,'刘六','张三','2014/05/02','b'
)
SELECTID,ToEmpID,FromEmpID,SendDateFROMMessagesa
WHEREIDin
(
SELECTTOP1ID
FROMMessages
whereToEmpID=a.ToEmpIDANDFromEmpID=a.FromEmpID
ORDERBYSendDateDESC
)
‘柒’ sql取 日期最大值的数据
Select top 1 [bianma] from [biao] Order by date desc
‘捌’ sql 语句 获取最大值
sql 语句获取一列中的最大值使用MAX() 函数
一、MAX() 函数返回指定列的最大值。
二、SQL MAX() 语法:
SELECT MAX(column_name) FROM table_name;
三、参数解释
column_name:列名
table_name:表名
(8)sql取得日期最大值扩展阅读:
最小值语句
MIN() 函数
MIN() 函数返回指定列的最小值。
SQL MIN() 语法
SELECT MIN(column_name) FROM table_name;
参考资料:网络-SQL MAX
‘玖’ SQL 取最大日期
1、SYSDATE函数:该函数没有参数,返回当前的系统时间。
‘拾’ SQL查时间最大值
select dest_location_gid from order_movement where ORDER_MOVEMENT_GID=(select top 1 ORDER_MOVEMENT_GID from order_movement_status where status_value = '已入库' order by INSERT_DATE desc)