mysql - 选择行计数用作任意行 ID

标签 mysql sql view

我正在尝试更改当前的 mysql View ,以便在导出 View 时我有一个唯一的行 ID。

我正在尝试找到一种可能使用行号或自动增量函数的方法,但我不知道如何在 View 中执行此操作。

这是查询:

alter view daily_report as SELECT 
@id := @id + 1 as id
,c.extension as Extension
,RESPONSIBLEUSEREXTENSIONID as ExtID
, sum(Duration) as Total_Talk_Time_seconds
, round(sum(Duration) / 60,2) as Total_Talk_Time_minutes
, sum(if(LEGTYPE1 = 1,1,0)) as Total_Outbound   
, sum(if(LEGTYPE1 = 2,1,0)) as Total_Inbound
, sum(if(Answered = 1,0,1)) as Missed_Calls
, count(DISTINCT b.NOTABLECALLID) as Total_Calls
, NOW()
, curdate()
FROM cdrdb.session a
LEFT JOIN cdrdb.callsummary b
        ON a.NOTABLECALLID = b.NOTABLECALLID
LEFT join cdrdb.mxuser c
      ON a.RESPONSIBLEUSEREXTENSIONID = c.EXTENSIONID
      CROSS JOIN (SELECT @id := 0 ) as var
WHERE b.ts >= curdate()
AND c.extension IN (7295,7306,7218,7247,7330,7000,7358)
group by c.extension;

有没有办法在我的 select 语句中使用行计数或其他内容,以便我的 View 具有唯一的行 ID?

最佳答案

使用用户变量

 SELECT @id := @id + 1 as id, <other field>
 FROM ( <your tables> )
 CROSS JOIN (SELECT @id := 0 ) as var

关于mysql - 选择行计数用作任意行 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45639418/

相关文章:

mysql - 如果另一列有多个值,如何选择按列分组的值

php - Mysql日期问题

sql - oracle sql left join 和 count, sum, group by

c# - 检查行是否已在 SQL 中更新的最佳方法

android - 自定义 View 位图的大小不正确

android - 动态设置属性值

MYSQL创建显示两个表中数据的 View

javascript - 使用 MySQL 数据库更改发送 WebSocket 更新哪个更有效

mysql - 从最后一行开始搜索 mysql 表

sql - 什么是 SQL/PSM?它与其他版本的 SQL(如 T-SQL)有何不同?