这是问题所在。
select count(studentID) AS count from educators where count > 1 group by studentid
将不起作用,因为SQL Server尚不知道count列。
所以我必须这么做
select *
from (select count(StudentID) as count
from educators
group by studentid
) s
where s.count > 1
有没有更优雅的解决方案?似乎应该有一种更好的方法来做到这
我正在使用SQL SERVER 2014。我有一个像这样的查询:
SELECT [PMSConfirmationNumber],[AR ACCOUNT NAME],sum([FOC NET AMOUNT]) AS [FOC_NET AMOUNT]
FROM ARACCOUNT
WHERE [PMSCONFIRMATIONNUMBER] = '81827436-1'
Group by [PMSConfirmationNumber],[AR ACCOUNT NAME],[FOC NET AMOUNT]
但是,PMSCONFIRMATIONNUMBER字段是NVARCHAR数
我正在尝试发现表中所有行多次出现的外键,并通过子查询返回这些外键。
使用列上的GROUP BY,我能够可视化每个外键的COUNT:
SELECT orders_id, COUNT(*) as count
FROM order_history
GROUP BY orders_id
但是,当我用WHERE子句增加它时,尝试过滤,如下所示:
SELECT orders_id, COUNT(*) as count
FROM order_history
GROUP BY orders_id
WHERE count > 1
我犯了个错误
#1064 - You have an error in yo
SELECT NAME,SALARY
FROM STAFF
WHERE SALARY>(SELECT AVG(SALARY) FROM SFAFF)
AND YEARS < (SELECT AVG(YEARS) FROM STAFF)
为什么在这个sql中,函数AVG必须在子查询中?
为什么下面的sql是错误的?
SELECT NAME,SALARY
FROM STAFF
WHERE SALARY>AVG(SALARY)
AND YEARS < AVG(YEARS)
我是SQL的新手,我正在尝试这样做:
我有一个名为Foo的表,其中有两列:FooId (主键)和BarId (一个不可为空的外键,其中可以有重复值)。
我想编写一个查询,返回在Foo中只出现一次的BarId。我还想编写另一个查询,返回在Foo中出现多次的BarId。
我是这样开始的:
SELECT
BarId,
COUNT(BarId) AS "BarCount"
FROM [Database].[dbo].[Foo]
GROUP BY BarId
它返回每个BarId的出现次数。但是只要我尝试添加一个WHERE子句,我就会得到一个语法错误:
S
我试图将一个方程式放入SQL中,但它给了我一个错误。下面是我的等式:
CREATE TABLE INFORGAIN (WORD, DMS, NOTDMS, INFO_G) AS
SELECT WORD, DMS, NOTDMS, D_FREQ FROM CONTIGENCY_T
WHERE
INFO_G=((D_FREQ/132299)*LOG(D_FREQ/132299))+(D_FREQ/132299)*((DMS/D_FREQ)*LOG(DMS/D_FREQ))+(NOTDMS/132299)*((9910-DMS)/D_FREQ*LOG((9910-DMS)/D_FREQ));
下面是
我想要写一个sql查询,如果特定列的和为零,那么结果将被检索。我尝试了如下:(我只写了检查部分,因为错误只会出现在这个部分)。
query=.... WHERE SUM(column1)='0'
coumn1有整数数据类型。我得到了以下错误:
java.sql.SQLException: Invalid use of group function
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
任何帮助都是非常感谢的。谢谢。
我有一个基于COUNT列值的Server查询。
如下所示:
SELECT
[id],
COUNT(*) AS IdCount,
FROM
myTable
WHERE
DATEDIFF(day, [Time], GETDATE()) < 30
GROUP BY
[id]
我想在COUNT条件中添加WHERE结果的值。我怎么能这么做?
SELECT
[id],
COUNT(*) AS IdCount,
RANK() OVER (ORDER BY IdCount) CountRank
FROM
我有一个简单的Select语句: SELECT TOP (100) PERCENT
COUNT(*) AS AuthorCount, PMID, dbid
FROM
dbo.[Publication.PubMed.Author]
GROUP BY
PMID, dbid
HAVING
(dbid = 500) AND (COUNT(*) > 1)
ORDER BY
PMID 此语句返回具有AuthorCount的所有行。我想只过滤那些PMID号在逗号分隔字符串中的记录 例如,添加一个 WHERE CAST(PMID AS NVARCHA
我希望通过SQL Server中的存储过程检索总行以及所有值。我有一些类似下面的东西。但是,它提到的聚合函数或GROUP BY子句中都没有包含它。感谢您的回复。谢谢。
ALTER PROCEDURE abc.testing
@facility varchar(50),
@date datetime
AS
SELECT count(*), *
FROM ss_table
WHERE _start = @date
And fid IN (SELECT id
FROM ss_facilities
我在Amazon上使用MySQL 8.0.23。
innodb_version是8.0.23版本是8.0.23引擎名,如RDS接口所示,是我的SQL
我可以使用像"WITH“这样的CTE表达式,但是当我尝试使用像这里提到的:这样的窗口函数时,它会抛出一个错误。我错过了什么?
作品:
with items as (
select number from item where updated_date > current_date
)
select * from items
不起作用:
select number, row_number() from item
错误信
试图增加tSql,做一个简单的,或我认为是一个简单的声明。此示例来自Microsoft的类“查询Microsoft Sql Server 2012数据库”。
Use AdventureWorks
SELECT SalesOrderID, YEAR(OrderDate) AS OrderYear
FROM Sales.SalesOrderHeader
WHERE (CustomerID = 29974)
GROUP BY SalesPersonID, YEAR(OrderDate)
HAVING (COUNT(*) > 1)
ORDER BY
我有一个很多板球碗的数据库。模式是:
Player(PlayerID, Initials, Surname)
- Stores all the players
Bowl(BowlID, Striker, Non-Striker, Bowler, Runs)
- Stores info for every ball
Team(TeamID, name)
- Stores all the teams
SquadPlayer(TeamID, PlayerID, MatchID)
- Stores a record of who was playing at each match and fo
我想知道如何在sqlserver中实现这个查询。
Mysql语法:
SELECT (COUNT(parent.Cat_Name) - 1) AS depth FROM tbl AS parent
microsoft sqlserver的相同查询是什么?谢谢。
编辑:
在sql-server中运行查询时出错如下:
Error Number: 42000
[Microsoft][SQL Server Native Client 11.0][SQL Server]Column 'category.Cat_ID' is invalid in the select list becau
我在oracle sql上有一个名为employees的表。我要做的是返回部门ID和所有员工的最低工资,按部门ID分组,最低工资大于部门ID不等于50的员工的最低工资。
这是我想出来的:
select department_id, min(salary)
from employees where min(salary)>(select min(salary) from employees
where department_id!=50)
group by department_id;
Oracle给出错误: ORA-00934:此处不允许使用组函数
有人知道为什么会发生这种事吗?
我有一个Moodle插件给我一些问题。它使用MySQL在服务器上工作,但不使用MSSQL。当我试图运行它时,我会得到以下错误.
Debug info: SQLState: 42000<br>
Error Code: 8120<br>
Message: [Microsoft][SQL Server Native Client 11.0][SQL Server]Column 'mdl_course.category' is invalid in the select list because it is not contained in either an
我正在尝试获取列中所有事件的计数,然后在不满足数字条件的情况下筛选出这些事件。例如,我有一个表(My_table),如下所示
fruit variety
orange 29
orange 001
orange 89
apple 82
plum 38
plum 49
sql查询:
select fruit, count(*) from my_table where count(*) > 1 group by fruit order by fruit
这给了我一个错误。
如何在sql server 2008的连接中使用sum函数?
SELECT SUM(d.TranTypeAmt),
h.LnNo,
h.LoanRcptAmt,
d.Trantype,
d.TranTypeAmt
FROM LGen_LnInstClln_h h
RIGHT OUTER JOIN LGen_LnInstClln_d d
ON h.PK_Id = d.InstCllnHdr_FK
WHERE h.LnNo = '40009'
我正在与oracle pdf一起学习pl/sql。有一个练习,我必须用另外两个已经存在的表中的数据创建一个新表。我认为这会起到作用:
CREATE TABLE new_depts
AS SELECT d.department_id, d.department_name, sum(e.salary) dept_sal
FROM employees e, departments d
WHERE e.department_id = d.department_id;
但这会引发以下错误:
SQL-Fehler: ORA-00937: not a single-group group functi
编写SQL查询的正确方法是什么,以便使用Where子句中Select语句中使用的函数的输出?
数据表:
ID Count_ID
111 2
111 2
222 3
222 3
222 3
333 1
查询:
Select ID, Count(Table1.ID) As Count_ID
From Table1
Where Count_ID = 3
Group By ID
它为我提供了无效的列名,目前在其中的条款为Count_ID。
没有在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
我知道我在这里遗漏了一些东西,因为我不能使用可聚合函数(在本例中是Sum(count...)中的双可聚合函数)在where函数中,但是似乎不知道如何重写sql。
SELECT city,
state,
COUNT(studentID),
COUNT(instructorID)
FROM Student
JOIN Instructor
ON Student.ZIP= Instructor.ZIP
WHERE SUM(COUNT(studentID), COUNT(instructorID)) AS TOTAL >=
这两个SQL语句返回相同的结果。那么使用where子句和使用having子句有什么不同呢?
有什么想法吗?
select
min(internid), max(internid)
from
v_intern
where
trainingterm= 'Fall - September' and trainingyear = '2020'
group by
trainingTerm, trainingYear
select
min(internid), max(internid)
from
下面是一个使用HAVING的SQL语句示例
select column1 from table1
where condition1
having condition2;
如果我们这样做,是不是完全一样:
select column1 from table1
where condition1 AND condition2;
这两者之间的区别是什么?
我为MySql编写了一个查询,它使用限制和按关键字分组。它在MySql上很好地工作。查询是:
SELECT
tester,
firstname,
COUNT(*) total
FROM mnrelease_details a LEFT JOIN users b ON tester='guest'
WHERE a.project='testpro'
GROUP BY tester ORDER BY total ASC LIMIT 10;
我试着把它翻译成to,以便在Server上使用.下面是我对Sql Server的看法
我是新的SQL和做通过数据放大器的学习。我在想,您是否可以像使用嵌套的“WHERE”子句那样使用“拥有”来实现相同的结果。
关联:,我知道它是与聚合函数一起使用的,例如min、max、..
我怎么能用“拥有”来重写以下内容呢?
SELECT *
FROM populations
WHERE year = 2015 AND life_expectancy >(
SELECT AVG(life_expectancy)*1.15
FROM populations
);
假设我在表“居群”中有6列:a(字符)、B(字符)、C(字符)、D(数字,即示例中的life_expectancy
SELECT C_SousCategorie as y, Enseigne as x, Count(DISTINCT r.Reference_Produit) as val
FROM RawData r, Day d
WHERE r.DayId = d.DayId
AND d.WeekNo BETWEEN MAX(d.WeekNo) AND (MAX(d.WeekNo)-2)
GROUP BY Enseigne, C_SousCategorie
微软SQL Server列'TantraBackup00.GuildName‘在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
SELECT
PK.KillerAccountName as CharacterName
,count(PK.KillerAccountName) as totalkillings
, TB.GuildName
FROM PlayerKills as PK
LEFT JOIN
TantraBackup00 as TB ON PK.KillerAccountName
我收到了的第四个问题。我选择了第二个方案,但事实证明,第五个方案是正确的答案。我不知道为什么这个sql语句是错误的。有人能告诉我原因吗?提前谢谢你。
sql语句如下所示:
SELECT region, SUM(area)
FROM bbc
WHERE SUM(area) > 15000000
GROUP BY region
为什么这个问题的答案是“无效使用WHERE函数没有结果”?
我有两个表,列名不同,如下所示:
表订单:到期日、付款、汇率
表发票:日期,小计,汇率
我想要下表:年,月份,总
其中,这两个表是统一的,ALL on date + month,Total是两个表中所有行的之和。
我的伪SQL如下所示:
SELECT YearID, MonthID, SUM(Amount) FROM (
SELECT YEAR(ORDREC.[Due Date]) as YearID, MONTH(ORDREC.[Due Date]) as MonthID, SUM(ORDREC.[Pay] * ORDREC.[Exchange Rate]) as Amount
F
我想在下面的sql中添加一个where子句,以便名为"howmany“的列只显示大于1的结果,但我在尝试时总是得到一个错误。
select monthname(birthdate) as 'Month', Count(*) as howmany
from tblBday
group by month(birthdate)
;
下面的SQL查询有问题:
SELECT job
FROM (SELECT job, COUNT(*) AS cnt
FROM Employee
GROUP BY job)
WHERE cnt=1
因此,它应该只显示cnt (作业计数)等于1的所有作业。
当我在Fiddle上测试上面的select查询时,我得到以下错误:
Incorrect syntax near the keyword 'WHERE'.
SQLFiddle:
请找到下面的查询。这个查询是我用spring数据jpa编写的。因此,它应该在所有关系数据库上工作,但我在MsSQL Server上得到异常,而在MySQL中,它工作得很好。
@Query(value = "SELECT p.ct,p.ctc,p.fy,"
+ " sum(p.oA + p.nA) as a,p.py "
+ " FROM P p where p.py = :py AND p.fy = :fy "
+ " AND p.B.eId in (SELECT e
我有以下代码:
SELECT (
SELECT COUNT(*)
FROM (
SELECT DISTINCT a.DtaId
FROM Tappt a
WHERE g.Id = a.TapptGroupsId
) AS t0
) AS Id
FROM Tappt t
LEFT JOIN TapptGroups g ON t.TapptGroupsId = g.Id;
在MySQL中,它抛出错误:Unknown column 'g.Id' in 'where clause'
替代的T-SQL
我目前正在使用SQL Server附带的Northwind示例数据库。我正在尝试写一个查询来查找“在Northwind的订单上花费超过25,000美元的客户”。在相同的上下文中,我编写了以下查询:
select a.customerid, sum (b.unitprice*b.quantity) as Total_Amount
from orders a join [order details] b on a.orderid=b.orderid
--where Total_Amount > 25000 --ERROR: In this filter condition, SQL Ser