当前位置: 代码迷 >> Sql Server >> 求1:一条记录包含两个统计的sql语句
  详细解决方案

求1:一条记录包含两个统计的sql语句

热度:14   发布时间:2016-04-24 09:17:34.0
求一:一条记录包含两个统计的sql语句


如上图数据:
有两组数据,是以LastLoginIP分组的。

想要得到以下结果(结果是一条记录):
字段:LastLoginIP-1        LastLoginIP-2
字段值:40                               18 


补充说明:这条记录得到的值分别是两组LastLoginIP的LoginTime的和。
------解决思路----------------------


DECLARE @T TABLE(ID INT,LastLoginIP VARCHAR(20),LoginTime INT)

INSERT INTO @T VALUES
(1,'127.0.0.1',10),
(4,'127.0.0.1',30),
(5,'127.0.0.1',0),
(2,'192.168.18.1',12),
(3,'192.168.18.1',6)

;WITH cte AS
(
SELECT CONCAT('LastLoginIP-',DENSE_RANK() OVER(ORDER BY LastLoginIP)) AS RowNo,
LoginTime
FROM @T
)
SELECT * FROM cte
PIVOT
(
SUM(LoginTime) FOR RowNo IN([LastLoginIP-1],[LastLoginIP-2])
) AS PT
------解决思路----------------------
SELECT IFNULL(SUM(CASE WHEN LastLoginIP='127.0.0.1'THEN LoginTime END),0)AS[LastLoginIP-1]
    ,IFNULL(SUM(CASE WHEN LastLoginIP='192.168.18.1'THEN LoginTime END),0)AS[LastLoginIP-2]
FROM TB
  相关解决方案