首页 > 解决方案 > phpmyadmin 中的多个查询 - 使用坐标、斜率、截距、角度等的距离

问题描述

我有大约 500 个 .csv 格式的 excel 表,其中包含为我的实验捕获的数据,其中包含以下列。

在此处输入图像描述

现在我需要使用这些数据计算以下参数。我已经在 excel 中完成了这些,但是对每个 excel 重复多次这样做很困难,所以我想在 PhpmyAdmin 中编写一个 SQL 查询会有所帮助。

  1. 最后输入的字符 - 需要从“CharSq”列中捕获最后一个字符
  2. 斜率(在 J 列中)=(B3-B2)/(A3-A2)
  3. 截距(在 K 列中)=B2-(A2*(J3))
  4. 角度(度数)=MOD(DEGREES(ATAN2((A3-A2),(B3-B2))), 360) -
  5. 难度指数=LOG(((E1/7.1)+1),2)
  6. 速度值长度(如果速度值长度>3,则标记为1,否则标记为0) = =IF(LEN(D3) >= 3, "1","0")
  7. 顺序错误(如果 I3=I2,则标记搜索时间,否则标记实际时间)=IF(I3=I2,"搜索时间","实际时间")
  8. 将字符标记为 (1,2,3) = =IF(I2="A",1, IF(I2="B",2, IF(I2="C",3, 0)))

在此处输入图像描述

我从这个 SQL 查询开始 SELECT id, type, charSq, substr(charSq,-1,1) AS TypedChar, xCoordinate, yCoordinate, angle, distance, timestamp, speed FROM table 1WHERE 1

其余参数需要帮助。谢谢。

注意 - 我将在 phpMyAdmin SQL 中运行它

标签: mysqlsqlexcel

解决方案


create table test.Table10 select mm.myid,mm.id,mm.type1 as GESTURE,MM.CHARSQ,MM.TYPE2 as TYPEDCHAR,MM.MYCHAR,MM.XCOR,MM.YCOR,MM.SLOPE,l4-(l2*(SLOPE)) as Intercept,
    if (ANGLE1<0, (ANGLE1+360) , ANGLE1 ) as ANGLE0,MM.DISTANCE,MM.DW,MM.INDDIFF,MM.TIME1,MM.SPEED,MM.SPDFILT,MM.TIMETYPE from (select c11.*,((YCOR-l4)/(XCOR-l2)) as SLOPE,MOD(DEGREES (ATAN2((YCOR-l4),(XCOR-l2))), 360) as ANGLE1,(YCOR-l4)/(XCOR-l2) ATT,LOG2(((DW)+1)) as INDDIFF,
    if(TYPE2=(LAG(TYPE2) OVER (
    PARTITION BY MYID
    ORDER BY ID)),"Search Time","Actual Time") as TIMETYPE,case when type2="A" then "1"
    when type2="B" then 2
    when type2="C" then 3
    else 0
    end as MYCHAR from (SELECT b.*,LEAD(XCOR) OVER (
    PARTITION BY charsq) l1,LAG(XCOR) OVER (
    PARTITION BY MYID
    ORDER BY ID) l2,LEAD(YCOR) OVER (
    PARTITION BY MYID) l3,LAG(YCOR) OVER (
    PARTITION BY MYID
    ORDER BY ID) l4,distance/7.1 as DW,IF(length(speed) >= 3, "1","0") as SPDFILT,RIGHT(charSq,1) as TYPE2 FROM test.table2 b) c11) mm

推荐阅读