Mysql 我正试图获得不同电话号码和LTV的州数
我写的查询是:Mysql 我正试图获得不同电话号码和LTV的州数,mysql,sql,Mysql,Sql,我写的查询是: SELECT ST,COUNT(PHONE) FROM Consumer.Axciom092013 WHERE MR_AMT >= (HOME_MKT_VALUE_(.45)) and ST = 'TX' or ST = 'CA' or ST = 'AZ' or ST = 'CO' or ST = 'FL'; 我只是想找出这些州的贷款价值比,但现在我只需要统计每个州有多少不同电话号码的记录 我在第1行中不断发现错误语法。我以为我已经一步一步地解决了,但似乎无法开始工作
SELECT ST,COUNT(PHONE) FROM Consumer.Axciom092013
WHERE MR_AMT >= (HOME_MKT_VALUE_(.45))
and ST = 'TX' or ST = 'CA' or ST = 'AZ' or ST = 'CO' or ST = 'FL';
我只是想找出这些州的贷款价值比,但现在我只需要统计每个州有多少不同电话号码的记录
我在第1行中不断发现错误语法。我以为我已经一步一步地解决了,但似乎无法开始工作 我已切换了查询,并尝试运行
SELECT ST,COUNT(*)
,但随后出现一个错误,表示函数HOME\u MKT\u VALUE
不存在
SELECT ST, COUNT(DISTINCT PHONE)
FROM Consumer.Axciom092013
WHERE MR_AMT >= (HOME_MKT_VALUE_(.45))
and ST IN ('TX', 'CA', 'AZ', 'CO', 'FL')
GROUP BY ST; //mistaken , PHONE
编辑:我犯了一个错误,不应按电话分组。我怀疑您想要这个:
SELECT ST, COUNT(distinct PHONE)
FROM Consumer.Axciom092013
WHERE MR_AMT >= HOME_MKT_VALUE_ * 0.45 and
ST IN ('TX', 'CA', 'AZ', 'CO', 'FL');
SQL只与显式的*
相乘。表达式HOME\u MKT\u VALUE\u45)
是函数调用的语法,而不是乘法
我为phone
添加了distinct
,因为您说您想要“distinct phone number”,这意味着不同行上可能有重复的电话号码
编辑:
顺便说一句,您的原始查询在where
子句中实际上具有以下逻辑:
WHERE (MR_AMT >= HOME_MKT_VALUE_ * 0.45 and ST = 'TX')
or ST IN ('CA', 'AZ', 'CO', 'FL');
如果这是你真正想要的逻辑,那么就用它来代替。如果你得到了电话记录的计数,为什么要在电话上分组?@PinnyM看到你的第一个答案,你错过了他想要的。他想数一数不同的电话号码。我也只是想和大家一起打电话,这样他就能得到他想要的。你确定这就是你认为的吗?您的查询似乎为每个唯一的ST和PHONE返回一行(计算该电话被复制的次数)。似乎OP需要一个不同电话号码的计数(删除重复的电话号码的计数)。@PinnyM我确信,它将在ST上分组,在ST下分组,它将在电话上分组。@PinnyM我已经解释过了。你能告诉我,组在做什么吗?关于第二个错误,你确定函数存在(并且拼写正确)吗?你还用IN谓词替换了or。