Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sqlite中使其变得简单_Sqlite - Fatal编程技术网

在sqlite中使其变得简单

在sqlite中使其变得简单,sqlite,Sqlite,以下是我的squlite声明: select code , case when (max(close)-min(close))/min(close)<0.1 then "grade1" when (max(close)-min(close))/min(close) <0.2 then "grade2" when (max(close)-min(close))/min(close) <0.3 then "grade3" else "grade4" end

以下是我的squlite声明:

select code ,  
case  when  (max(close)-min(close))/min(close)<0.1 then "grade1" 
when  (max(close)-min(close))/min(close) <0.2  then  "grade2"
when  (max(close)-min(close))/min(close) <0.3  then  "grade3"
else "grade4"  end  as  type;

maxclose minclose/minclose使用了三次,如何使查询语句更简单?

将计算放入子查询:

SELECT code,
       CASE WHEN CloseRatio < 0.1 THEN 'grade1'
            WHEN CloseRatio < 0.2 THEN 'grade2'
            WHEN CloseRatio < 0.3 THEN 'grade3'
            ELSE                       'grade4'
       END AS type
FROM (SELECT code,
             (MAX(close) - MIN(close)) / MIN(close) AS CloseRatio
      FROM MyTable);

可能有一种方法我不知道,但显而易见的方法是使用一个变量,不幸的是sqlite不支持这个变量。所以,我不确定是否有可能简化它。