没有在GROUP BY中使用的字段在SELECT中不可用,但在WHERE中可用。这是有意义的,因为WHEN在GROUP BY之前,但是HAVING不应该必须能够访问行的“其他”列。
示例
下面是有效的。
select fid, count(*)
from class
inner join faculty using (fid)
group by fid
having every(class.room = 'R128')
但不能这么做。
select fid, count(*)
from class
inner join faculty using (fid)
group by
我有以下3个表,我想知道正确的sql的预期结果如下。我这里的sql不工作; select h.pid,
h.name,
sum(r.amount1) as total1,
sum(r.amount2) as total2,
count(g.pid) as times,
sum(g.take) as totaltaken
from history h
left join rpt_revenue r on h.pid=r.pid
left join guest g on g.pid=r.pid
group by
当我在中执行以下查询时,它产生了一个错误。
查询:
select u.UserName, r.RoleName
from User u
join UserRole ur on ur.UserId = u.UserId
join Role r on r.RoleId = ur.RoleId
group by r.RoleName
错误:
Msg 8120、级别16、状态1、第2列'User.UserName‘在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
有一段时间我使用了sql,我认为这是一些基本的命令。但我还是找不出原因。
注意:
我试图按用JOIN语句检索的列进行分组。
以下是查询:
SELECT DISTINCT a, r.id
FROM Allocation a
JOIN a.person.roles r
GROUP BY r.id
不幸的是,线程并没有帮助我,因为我仍然得到一个SQLGrammarException。
我肯定我在这里误解了什么,但我不明白是什么。你能帮我理解一下吗?
谢谢
这是我的以下sql查询。
select a.job_name,endtime,to_char(endtime,'HH24:MI:SS') as endtime_1
from OPTOOLS.R11_JOB_PROD_VW a, OPTOOLS.R11_JOB_RUNS_PROD_VW b
where
a.joid=b.joid and a.job_name in ('hh_p_hkc_isrs_gim_trd_ld_bx') and rownum <= 30
and status = 'SUCCESS'
我的sql输出应该是,
AssignedTo Cases
Larry 3
Tom 1
Henry 1
我有三张桌子。关系
select
CASE
WHEN r.id = 30 THEN r.name
ELSE r.name
|| ' '
|| u.b_id
END
AS assignedto, count(*) as cases
from cases c, users u, ro
我正在尝试理解在having子句之后可以放置什么条件-它通常是一个条件,它使用select语句中的函数,但它也可以包含在select语句中键入的列。
下面是一个例子:
create table r(a int, b int, c int, d int, e int primary key)
select a, min(b), sum(c)
from r
where b > 5
group by a
having "condition"
以下哪一项可以替代“条件”
a) b = 5
b) a = sum(e)
c) min(b) >= 6
当我在SQL中执行时,
您将如何计算多列和多行的平均值?
到目前为止我的代码是:
SELECT b.id, r.id, b.name, r.business_id, (r.service + r.value + r.quality) / 3 AS average
FROM business b
LEFT JOIN rating r ON r.business_id = b.id
我想得到r.service、r.value和r.quality的平均值,并将business_id列组合起来。
所以我应该得到: bu
我在Server 2008中为string列创建一个聚合函数。
C#代码如下所示:
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.IO;
using Microsoft.SqlServer.Server;
[Serializable]
[SqlUserDefinedAggregate(Format.UserDefined, MaxByteSize = 8000)]
public struct strconcat : IBinarySerialize
{
我使用这个查询来获取按大多数content_id排序的结果,问题是即使请求表是空的,它仍然从content表中返回1个元素:
select `c`.`id`, `c`.`title`, `c`.`slug`, `c`.`year`, `c`.`category`, `r`.*
, count(*) from requests as r
RIGHT JOIN `content` as c ON `r`.`content_id` = `c`.`id`
group by content_id order by count(*) desc
LIMIT 10
如果在请求表中有一些记录,比如5条记录,它会
查询1
MATCH (n:PC)-[r:C1|C2|U]->(n2) WHERE r.date IS NULL OR (r.date > 1 AND r.date < 15)
WITH n,n2,
reduce(t = 0, r in [x IN collect(r) WHERE type(x) = 'C1' or type(x) = 'C2'] | t + r.amount) as totalAmount1,
reduce(t = 0, r in [x IN collect(r) WHERE type(x) = 'U' ]
因此,我有以下查询:
SELECT d.iID1 as 'id',
SUM(d.sum + d.count*r.lp)/sum(d.count) AS avgrat
FROM abce r, abcf d
WHERE r.aID = 1 AND
d.iID1 <> r.rID AND d.iID2 = r.rID GROUP BY d.iID1
O
我有一个蜂箱表,表格率是根据UAD计算的。我想以加元计算汇率。 Select (select rate from rate where currency_code = 'CAD')作为c_rate,c_ rate /r.rate from rate r Select (select rate from rate where currency_code = 'CAD')作为c_rate,c_ rate /r.rate from rate r 实际结果:无法识别‘’附近的输入(‘’选择表达式规范中的‘'rate’(state=42000,code=4000
我面对的是ORA- 00937 :不是单群组函数00937。00000 -此sql查询中的"not a single-group group function“错误问题 select c.First_Name,sum(r.installment_number)
from LMS_CUSTOMER_M c, LMS_REPAYSCH_DTL r,LMS_AGREEMENT_DTL a
where (c.Customer_ID=a.Lessee_ID and a.agreement_id= r.agreement_id)
and a.Loan_Disbursal_Date < r.
这个查询有时会随机地给出一些行中的空值,有时则不会。当我更改左联接的内部联接时,这一切就开始发生了。
CREATE temporary TABLE IF NOT EXISTS surveys_temp AS
(SELECT SN.id_rep,
Coalesce(( Sum(CASE
WHEN SN.score < 7 THEN -100
WHEN SN.score >= 7
A
我尝试从数据库中查询最后一行,所以我使用这个函数LAST(column_name)。它对我不起作用,我不知道为什么。
这是phpmyadmin回复给我的错误消息
SQL query: Documentation
SELECT LAST(power) FROM f01_r02
LIMIT 0, 25
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the ri
我写了以下查询:
SELECT r.StartTime,
(CASE d.DayOfWeekendInd WHEN 'Y' THEN COUNT(*) END) as 'WEEKDAY',
(CASE d.DayOfWeekendInd WHEN 'N' THEN COUNT(*) END) as 'WEEKEND'
FROM t_fact_rit as r
LEFT JOIN t_dim_date d ON r.DateId=d.DATE_SK
GROUP BY r.StartTime, d.Day
我使用的是SQL Server2008 R2。
我正在尝试编写一个显示以下内容的查询:
select productname, unitprice,categoryid, sum(unitprice)
over (partition by categoryid order by unitprice desc) As PriceSum
from Products
我希望结果是按产品的单价订购产品,同时按产品的类别划分产品。我得到了这个错误:Incorrect syntax near 'order'.,我做错了什么?
如果你试图分离一个向量的最后或第一项,那么对于Tableau中的“头”和“尾”来说,什么是最有效的或等效的过程?如果你在寻找最后10个数字的平均值:mean(head(x, 10))或mean(tail(x, 10)),那么在R中的已知过程是简单的。我试图在Tableau中找到一个具有LOD "max“和" min”的解决方案,但是"show me the first 10 min item“?!没有机会!
下面的查询在计算"ratingValue“时似乎有问题,因为在SUM中有SUM(h.liked)。
SELECT d.itemID1 as item,
sum(d.sum + d.count*SUM(h.liked))/sum(d.count) as ratingValue
FROM history h, dev d
WHERE h.userID=:id_user
AND d.itemID1<>h.itemID
AND d.itemID2=h.itemID
GROUP BY d.itemID1,h.itemID
为了更好地理解,这是原始的和
我想要显示度假村id,度假村名称,每个度假村的预订数量,以及每个度假村的总收款。为此,我有如下的一段代码; select r.resortid, r.resortname, count(b.bookingid) as totalbooking, sum(b.totalcharge) as totalamount
from resort r inner join booking b
on r.resortid = b.resortid
group by b.resortid
order by b.resortid; 但是这段代码给出了一个错误,声明"Not a group
我有一个我已经做过的查询,只有一个部分让我适应了。我试图根据两个表的值在查询中创建一个列。我已经尝试过CASE WHEN和它的功能,但是由于所涉及的非唯一值,行计数在原始查询之间没有增加。例如,当我写到:
Select r.Id,
r.RequiredOn AT TIME ZONE 'UTC' AT TIME ZONE 'Central Standard Time'
as RequiredDate,
Concat(vs.Salutation, ' ',vs.FirstName
我正试着在我的桌子上做情绪分析。
我希望将每一行字符串数据传递给R脚本,但问题是Tableau只接受聚合数据作为params:
SCRIPT_STR(
'output <- .arg1; output', [comments]
)
这给了我一条错误消息:
# All fields must be aggregate or constant.