Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
如何基于SQL列值对其进行分类_Sql_Sql Server - Fatal编程技术网

如何基于SQL列值对其进行分类

如何基于SQL列值对其进行分类,sql,sql-server,Sql,Sql Server,我想得到分支机构中女性的比例,基本上是这样的: BranchID | CountOfWomen | CountofMen | CountOfWomen/CountOfMen (B001), (3), (4), (0.75) (B002), (1), (1), (1) 现在我有一个分支中女性的比率: B001雇主中75%为女性

我想得到分支机构中女性的比例,基本上是这样的:

BranchID   | CountOfWomen   | CountofMen      | CountOfWomen/CountOfMen
(B001),           (3),            (4),                  (0.75)
(B002),           (1),            (1),                   (1)
现在我有一个分支中女性的比率: B001雇主中75%为女性等。。。 我现在需要的是:

女性/男性的比率分为3类:平均、低、高

Avarage是指如果CountOfWomen/CountofMen为1,则比率为1:1

低意味着如果CountOfWomen/CountofMen为1……工作的男性多于工作的女性

我尝试了以下几点:

我正在尝试创建一个视图并将值放在定位的列中,但它不起作用

   CREATE VIEW MFKata2 (BranchID,High,Low,Avarage ) AS
    SELECT       MFKata.BranchID,
    Case When(MFKata.Quote > 1) As High,
    Case When (MFKata.Quote < 1) As Low,
    Case When (MFKata.Quote = 1) As Avarage
    FROM         MFKata  
你所有的案件陈述都没有结尾

 CREATE VIEW MFKata2 (BranchID,High,Low,Avarage ) AS
    SELECT       MFKata.BranchID,
    Case When (MFKata.Quote > 1) THEN 1 END AS High,
    Case When (MFKata.Quote < 1) THEN 1 END As Low,
    Case When (MFKata.Quote = 1) THEN 1 END As Avarage
    FROM 
或者,您可以为高/低/平均设置一列,类似于

 CREATE VIEW MFKata2 (BranchID,[Rate]) AS
    SELECT       MFKata.BranchID,
    Case When (MFKata.Quote > 1) THEN 'High'
         When (MFKata.Quote < 1) THEN 'Low'
         When (MFKata.Quote = 1) THEN 'Avarage' 
      END AS [Rate]
    FROM 
SELECT  BranchID
      , Case 
           When (Quote > 1) THEN 'High'
           When (Quote < 1) THEN 'Low'
           When (Quote = 1) THEN 'Average' 
        END AS [Rate]
FROM (
    SELECT    Frauen2.BranchID
            , AnzahlF
            , AnzahlM
            , CAST(AnzahlF as float)/CAST(AnzahlM as float) as Quote
    FROM  Frauen2  
    INNER JOIN Maenner ON Frauen2.BranchID = Maenner.BranchID
    ) A 
编辑

避免在视图之上创建视图,除非绝对必要,这可以通过非常简单的select查询实现。类似于

 CREATE VIEW MFKata2 (BranchID,[Rate]) AS
    SELECT       MFKata.BranchID,
    Case When (MFKata.Quote > 1) THEN 'High'
         When (MFKata.Quote < 1) THEN 'Low'
         When (MFKata.Quote = 1) THEN 'Avarage' 
      END AS [Rate]
    FROM 
SELECT  BranchID
      , Case 
           When (Quote > 1) THEN 'High'
           When (Quote < 1) THEN 'Low'
           When (Quote = 1) THEN 'Average' 
        END AS [Rate]
FROM (
    SELECT    Frauen2.BranchID
            , AnzahlF
            , AnzahlM
            , CAST(AnzahlF as float)/CAST(AnzahlM as float) as Quote
    FROM  Frauen2  
    INNER JOIN Maenner ON Frauen2.BranchID = Maenner.BranchID
    ) A 
你所有的案件陈述都没有结尾

 CREATE VIEW MFKata2 (BranchID,High,Low,Avarage ) AS
    SELECT       MFKata.BranchID,
    Case When (MFKata.Quote > 1) THEN 1 END AS High,
    Case When (MFKata.Quote < 1) THEN 1 END As Low,
    Case When (MFKata.Quote = 1) THEN 1 END As Avarage
    FROM 
或者,您可以为高/低/平均设置一列,类似于

 CREATE VIEW MFKata2 (BranchID,[Rate]) AS
    SELECT       MFKata.BranchID,
    Case When (MFKata.Quote > 1) THEN 'High'
         When (MFKata.Quote < 1) THEN 'Low'
         When (MFKata.Quote = 1) THEN 'Avarage' 
      END AS [Rate]
    FROM 
SELECT  BranchID
      , Case 
           When (Quote > 1) THEN 'High'
           When (Quote < 1) THEN 'Low'
           When (Quote = 1) THEN 'Average' 
        END AS [Rate]
FROM (
    SELECT    Frauen2.BranchID
            , AnzahlF
            , AnzahlM
            , CAST(AnzahlF as float)/CAST(AnzahlM as float) as Quote
    FROM  Frauen2  
    INNER JOIN Maenner ON Frauen2.BranchID = Maenner.BranchID
    ) A 
编辑

避免在视图之上创建视图,除非绝对必要,这可以通过非常简单的select查询实现。类似于

 CREATE VIEW MFKata2 (BranchID,[Rate]) AS
    SELECT       MFKata.BranchID,
    Case When (MFKata.Quote > 1) THEN 'High'
         When (MFKata.Quote < 1) THEN 'Low'
         When (MFKata.Quote = 1) THEN 'Avarage' 
      END AS [Rate]
    FROM 
SELECT  BranchID
      , Case 
           When (Quote > 1) THEN 'High'
           When (Quote < 1) THEN 'Low'
           When (Quote = 1) THEN 'Average' 
        END AS [Rate]
FROM (
    SELECT    Frauen2.BranchID
            , AnzahlF
            , AnzahlM
            , CAST(AnzahlF as float)/CAST(AnzahlM as float) as Quote
    FROM  Frauen2  
    INNER JOIN Maenner ON Frauen2.BranchID = Maenner.BranchID
    ) A 

什么是不工作的意思?我收到错误消息:Msg 156,级别15,状态1,过程MFKata2,第3行关键字“As”附近语法不正确。什么是不工作的意思?我收到错误消息:Msg 156,级别15,状态1,过程MFKata2,第3行关键字“As”附近的语法不正确。这两种解决方案都有效:谢谢,现在我知道错误在哪里了!但是有没有可能在不创建视图的情况下与外部连接相同?谢谢一个非常好的答案,我认为这将帮助很多人!这两种解决方案都有效:谢谢,现在我知道错误在哪里了!但是有没有可能在不创建视图的情况下与外部连接相同?谢谢一个非常好的答案,我认为这将帮助很多人!