我有一些实体A,它们都可以有一个或多个B。如何才能查询“具有此和来自B的的所有实体A”?
我可以查询“具有”这个“”或“”的“来自B”的所有实体A:
SELECT *
FROM A
INNER JOIN B ON B.A_id = A.id
WHERE f = "this" OR f = "that"
GROUP BY A.ID
但是我不能检查它们是否有“和”,因为我不能检查A中不同行的东西。
我可能使用GROUP_CONCAT,但是如何才能有效地检查"blah,thing,foo,bar"是否有blah和foo而没有一些不可维护的REGEXP混
我想使用Terraform在Azure中创建不同子网之间的一组网络安全(nsg)规则。为此,我编写了以下代码:
#here, a set of subnets are created according to the value of count.
resource "azurerm_subnet" "mysubnets" {
count = var.subnet_number
name = join("-", ["subnet", count.index])
resource_group_name =
使用SQL查询
select u.name,count(u.name) as 'followers'
from user u,follow f
where u.type = 'c' AND f.followee = u.email
group by u.name
为我的数据库中的所有用户获取正确的值,但是,没有逐行组的完全相同的查询只给出第一个值。我第一次学习SQL,很难弄清楚为什么会这样。
如何在LEFT JOIN子句中使用来自IN的结果?
到目前为止,这是我的疑问:
SELECT
n.id,
n.title,
n.public,
CAST(GROUP_CONCAT(DISTINCT ngm.members_group_id) AS CHAR(1000)) AS `news_groups_text`,
GROUP_CONCAT(DISTINCT ngm.members_group_id) AS `news_groups`
FROM news n
LEFT JOIN news_groups_map ngm ON ngm.news_id = n.id
WHERE public=
我的问题是:
List the performance description, date, time and venue of performances such
that for each one of the performances, there exists another performance
with the same date and time but performed in a different venue.
我认为唯一需要使用的桌子是:
CREATE TABLE PERFORMANCE (
PerformDateTime timestamp NOT NUL
假设我有以下SQL:
select user_group, count(*)
from table
where user_group is not null
group by user_group
进一步假设99%的数据具有空user_group。
这将在组之前丢弃带空的行吗?还是一个糟糕的还原器最终会丢弃99%的行?
我希望是前者。那就更有意义了。
如果你说蜂巢版本会发生什么,你就会得到额外的分数。我们正在使用0.11并迁移到0.13。
如果您可以指向任何确认的文档,则奖励积分。
我有这样的代码(它可以工作):
SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes
FROM like_table
GROUP BY sportsID, newsID
ORDER BY totalLikes DESC
我试着修改它,使其不显示负值,但它不起作用。
SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes
FROM like_table
WHERE totalLikes > 0
GROUP BY sportsID, newsID
ORDER BY to
我有一个应用程序,在WHERE条件后自动添加括号并将其发送到JDBC驱动程序,Oracle不喜欢它,并抛出:ORA-00907:缺少右括号
我不知道如何在Oracle语法的范围内使用它,但是有什么建议来修正它是否有这个括号,或者语法不支持它?
原始查询工作得很好:
SELECT count(*) as ErrorCount, Engine_name, to_char(log_time,'hh24') as Hour FROM eailog_data.err_log WHERE err_timestamp > sysdate-1/24 GROUP BY engine_nam
我试图做一个非常简单的嵌套查询
SELECT group FROM customer_table WHERE customer_table.customer_number=other_table.cust_num
但是查询正在返回。
#1054- 'where子句‘中未知列'other_table.cust_num’
表和列都确实存在,并在查询中正确命名。我做了什么明显的蠢事吗?任何帮助都将是非常感谢的,因为我认为我要疯了。
我有以下SQL语句:
SELECT r.Result AS Resuly,
COUNT(f.fieldID) AS [Count]
FROM dbo.Fields f
RIGHT JOIN dbo.Results r ON f.Results = r.ID
WHERE f.RegionID = @RegionID
GROUP BY r.Result
我想要语句做的是返回所有不同的结果(无论它们是否在Field DB中有计数)。目前,查询只返回具有计数的值。
ie在我的reuslts数据库中
ID 1, 2 and 3
Result x
因此,我想要创建一个createview,将时间记录分隔到4行,但总是会导致“min( '11:00:00‘和’12:00:00‘之间的时间)作为签出”,所以我的问题是如何根据下面的语法使用inside min() / max()之间的时间记录?
CREATE VIEW absenfinal AS SELECT pin, name, date,
MIN(time) as login,
MIN(time BETWEEN '11:00:00' and '12:00:00') as checkout,
MAX(t
假设这个表:posts_groups
+---------+----------+--------+
| post_id | group_id | type |
+---------+----------+--------+
| 1 | 1 | public | // group #1 sees post #1 where type is public
+---------+----------+--------+
表:posts
+----+--------+
| id | type |
+----+--------+
| 1 | p
我有一个有两个表的数据库,如下所示:
我希望为每个用户获取最新的日志,如下所示:
我可以通过查询(Q1)获得结果:
select u.login, tempLogs.createdDate from User as u,
(select * from Logs as n1 order by n1.createdDate desc ) as tempLogs
where tempLogs.userId = u.id
group by u.login;
但是这个(Q2)不起作用:
select tempCK.login, tempCK.createdDate from
我正在尝试使多个表选择ID = variabile所在的位置。
示例代码如下,我相信它应该工作,但不知何故,我有一些错误的语法。
SELECT c.id, c.firstname, c.surname, c.email, c.process, c.search_work, c.note,
group_concat(DISTINCT ce.enforcement) as enfor,
group_concat(DISTINCT cc.city) as city
FROM candidates AS c
LEFT JOIN candidates_language AS cl ON c.id
我了解在处理一个表时如何在SQL中使用count(*),但是它在内部连接上是如何工作的呢?
例如:
SELECT branch, staffNo, Count(*)
FROM Staff s, Properties p
WHERE s.staffNo = p.staffNo
GROUP BY s.staffNo, p.staffNo
staff包含staffNo staffName
属性包含属性管理详细信息(即哪些员工管理哪些属性)
这将返回由staff管理的属性数量,但是计数是如何工作的呢?例如,它如何知道要计算的内容?
我想知道在使用WHERE子句还是在内部联接的ON中使用匹配时是否有任何不同。
这种情况下的结果是一样的。
第一个查询:
with Catmin as
(
select categoryid, MIN(unitprice) as mn
from production.Products
group by categoryid
)
select p.productname, mn
from Catmin
inner join Production.Products p
on p.categoryid = Catmin.categoryid
and p.unitprice
我注意到所显示的行的顺序(用于查询)取决于名称在组中的顺序,即子句。
场景1:
SELECT customer_id, staff_id, SUM(amount)
FROM payment
GROUP BY staff_id, customer_id
设想1的结果:
场景2:
SELECT customer_id, staff_id, SUM(amount)
FROM payment
GROUP BY customer_id, staff_id
假设2的结果:
我有一个简单的数据库,其中我有用户,每个用户都有“国家”,例如:
Dmitry - US
Ann - US
John - UK
Roman - Japan
Mila - China
Jane - Australia
我想得到非常国家的用户数量,但我需要得到前三个国家的用户数量(例如美国,英国,日本),所有其他国家的用户统计应该总结为"Rest“。怎么做?
因此,在我的示例中,这将给出SQL的结果:
US = 2
UK = 1
Japan = 1
Rest = 2
如果我要做常规的SQL::
SELECT count(userid) FROM users GROUP BY country
我有一个group by - having查询,我是否可以在having子句中添加额外的where条件,而不是添加额外的where clause.Will结果是相同的?是否会有无法将所有where添加到having子句的情况?我之所以需要这样做,是因为我正在开发一个查询生成工具,而这个特定的特性将为我节省一些UI和查询生成逻辑方面的工作。
例如
USE AdventureWorks ;
GO
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVI
这两个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
有包含值1, 1,2,3,7 ,3,4,2,7,7的数字表,我只想选择重复的,以便输出集包含1,2,3,7,so _4被过滤掉。
我有这样的代码:
DROP TABLE #tempTable;
SELECT [numbers] as nums, COUNT(*) as cny
INTO #tempTable
FROM [testBase].[dbo].[numbers] group by numbers;
SELECT nums from #tempTable where nums > 1;
现在,我想知道,我是否可以得到它,而不首先选择#诱惑?更像是从选择中选择,还是只有这样我
我有以下查询,它可以做我想做的事情,但是我怀疑不需要子查询就可以做到这一点:
SELECT *
FROM (SELECT *
FROM 'versions'
ORDER BY 'ID' DESC) AS X
GROUP BY 'program'
我需要的是按程序分组,但以"ID“为最高值的版本返回对象的结果。
在我过去的经验中,这样的查询应该可以在MySQL中工作,但出于某些原因,它不是:
SELECT *
FROM 'versions'
GROU
如何选择至少有2行Group字段最大大于0的Year?
例如,下表如何获得结果是a行
更新
Group Name
a a0
a a1
a a2
b b0
b b1
Name Year
a0 0
a1 1
a2 2
b0 0
b1 1
SELECT * FROM table WHERE Year > 0至少2行年场最大大于0.
我有一个2列表farmer_crops,用来存储农民和他们种植的作物之间的关系。农民可以种一种或多种作物。下面的查询向我提供了不同的农民和他们种植的作物总量。我怎样才能得到种植农作物的农民总数(my_crops > 1)?
select distinct farmer_id, count(crop_id) as my_crops
from farmer_crops
group by farmer_id
使用GMB的提示编辑,下面的查询给我总共2330行,这是正确的。
SELECT farmer_id, count(crop_id) as my_crops
FROM farmer_c
我想要写一个sql查询,如果特定列的和为零,那么结果将被检索。我尝试了如下:(我只写了检查部分,因为错误只会出现在这个部分)。
query=.... WHERE SUM(column1)='0'
coumn1有整数数据类型。我得到了以下错误:
java.sql.SQLException: Invalid use of group function
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
任何帮助都是非常感谢的。谢谢。
当我尝试下面的查询时
select column2
from table1
group by column2
having count(column3) = count(column1) and column5 in (1,2)
我得到了这个错误:
ORA-00979: not a GROUP BY expression
00979. 00000 - "not a GROUP BY expression"
我应该写什么才能得到结果,即同时满足这两个条件的column2
i.e. (count(column3) = count(column1) and column5 i
如果我删除order,下面的查询将顺利运行。有什么真知灼见吗?它为什么不接受按顺序转换的数据?
供您参考的代码:
select date(creation_date) , count(*) from bigquery-public-data.stackoverflow.post_links
group by date(creation_date)
order by date(creation_date)
我在SQLWorkbenchJ中使用了SQLWorkbenchJ,而且我正在挣扎。
我有一个WITH语句,它根据其行号选择日期。如果语句找不到行号,我希望在date字段中选择null。这种情况目前没有发生,它只是选择所有字段都不是null的记录。我想这与加入有关,但我不确定。
目前的声明如下。它应该返回大约50,000条记录,但目前它还不到2000年。
WITH FifthEnquiry AS
(
SELECT emailaddress,
SentDate,
ROW_NUMBER() OVER (PARTITION BY emailaddress ORD
正在尝试从多个SQL表中提取数据。我有一个主表和几个子表。我希望在给定条件的情况下从主表中获取所有行,并从子表中添加一些字段。我认为OUTER JOIN应该可以工作,但我没有获得全部数据。 当我在主表上运行一个符合条件的COUNT时,我得到了大约10k行,这是我连接其他表后期望得到的结果。我知道我会在一些行条目上得到空值。 这是我想出来的查询,但我只能得到部分结果 SELECT main_table.group_id, main_table.floor, sub_table1.Name, sub_table2.base
FROM main_table
LEFT JOIN ON main_ta
我正在尝试从Contacts表中获取所有的ContactsContract.CommonDataKinds.Email.CONTENT_URI
按ContactID和Name使用CursorLoader进行分组。
因此,例如,如果联系人有2封电子邮件,我将只得到一行关于这个联系。
基本上,应该是这样的:
SELECT ContactID, Name
FROM Table
GROUP BY ContactID, Name
我的代码:
String filter = ContactsContract.CommonDataKinds.Email.DATA + " NOT LIKE '
服务器版本: 5.6.38 - MySQL社区服务器
PHP版本: 7.2.1
PHPMyAdmin:版本信息: 4.7.7
这是我的mysql查询
SELECT r.id, r.url, MAX(date) as `max_date`, date
FROM report as r
WHERE max_date = date
GROUP BY id, url
ORDER BY bid DESC;
我想检索maxdate的结果。
我已经试过Having和Between了,它只是不起作用。别名是未知列。
我想做的是,
我想找回一个网址的最新日期。
示例:
id,url,日期
2018年1月1日,f
我在查看Access数据库中没有进行的SQL查询。
其中一个SQL查询如下所示:
select column1 from table1 group by column1 having count(*)>1
此查询的目的是在column1中找到不止一次出现的值。我可以验证此查询是否正常工作,并返回多次出现的列值。
然而,我不明白为什么这个查询工作。根据我的理解,使用group by将删除重复字段。例如,如果column1有
column1
apple
mango
mango
执行group by (column1)将导致
column1
ap
我的数据是这样
Name Values
A Val1
A Val1
A Val2
A Val2
A Val2
B Val1
B Val2
我想输出我的数据是这样的
Name Val1Count Val2Count
A 2 3
B 1 1
我可以通过这个查询获得Val1的名称和计数(*)。
select [Name],count(*) FROM [table1]
where [values]='Val1'
group by [Name]
但是,我不知道如何在同一行中获得val2的计数(*)