如何基于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”附近的语法不正确。这两种解决方案都有效:谢谢,现在我知道错误在哪里了!但是有没有可能在不创建视图的情况下与外部连接相同?谢谢一个非常好的答案,我认为这将帮助很多人!这两种解决方案都有效:谢谢,现在我知道错误在哪里了!但是有没有可能在不创建视图的情况下与外部连接相同?谢谢一个非常好的答案,我认为这将帮助很多人!