SQLite查询格式

SQLite查询格式,sql,sqlite,Sql,Sqlite,您好,我正在处理一个SQLite查询,数据的格式是 col1 | ID | STATE | col4 | col5 ---------------------------------- 5 | 10 | LA | 7 | YES 3 | 11 | FL | 7 | YES 7 | 12 | LA | 7 | YES 4 | 13 | DC | 7 | YES 8 | 14 | FL

您好,我正在处理一个SQLite查询,数据的格式是

col1  | ID   | STATE | col4 | col5
----------------------------------
5     | 10   | LA    | 7    | YES
3     | 11   | FL    | 7    | YES
7     | 12   | LA    | 7    | YES
4     | 13   | DC    | 7    | YES
8     | 14   | FL    | 7    | YES
2     | 15   | GA    | 7    | YES
在我的数据中,我有50多个州,但我只需要两个州和另一列有所有其他州的百分比,并将百分比放在它们下面。例如,有多少数据来自特定的状态。在这里,LA 5%表示LA状态包含来自总状态的5%行,以此类推

LA  | DC  | Other
-----------------
5%  | 10% | 85%
我曾尝试过不同的方法,通过在线搜索或使用StackOverflow的答案,但都不适合我。下面的代码以错误的格式显示数据,在其他情况下,我应该有一个值,但我的查询有多个值。如果有人能澄清我的想法,我将不胜感激

SELECT State, 
   count(State) * 100.0 / (select count(*) from table) as Percent
FROM 
    table
where 
    State = "LA" 
or 
    State = "DC"
or 
     (State <> "LA" or State <> "DC")
group by 
    State;

您可以使用条件聚合:

select avg( state = 'LA' ),
       avg( state = 'DC' ),
       avg( state not in ('LA', 'DC') )
from t;

SQLite在数字上下文中将布尔值视为数字,1表示真,0表示假。

谢谢,戈登。它起作用了,我的概念也很清楚。