我有一个SQL表,有两列照片,person。我看了每一张照片,假设照片一张包含本和哈利,所以我插入了两行。
我的桌子现在看起来像这样。
Photo, Person
1, Ben
1, Harry
我希望能够选择所有照片,其中包含本和哈利在同一张图片(但不限于本和哈利,如果其他人在图片,这是可以的)。我试图搜索sample语句,但无法得到我想要的查询的措辞。我该怎么做?
我有一张桌子gradesStudent,成绩我的任务是с的学生数量,有2A的(2)和至少一个D (2)。最痛苦的部分是我不应该使用sql子查询
我想出的那种令人憎恶的东西,只会列出那些符合条件的学生,怎样计算呢?还是返工查询?
SELECT CASE WHEN
(
sum(CASE WHEN g1.grade = 5
THEN 1
ELSE 0
END) > 2
给定具有(非明确)标识符和值的表:
| ID | Value |
|----|-------|
| 1 | A |
| 1 | B |
| 1 | C |
| 1 | D |
| 2 | A |
| 2 | B |
| 2 | C |
| 3 | A |
| 3 | B |
如何选择具有给定列表值的分组标识符?(例如('B', 'C'))
此列表也可能是另一个查询的结果(与ID=2 (本例中只有ID=1 )相比,查找所有具有超集值的in的方法类似于ID=1)。
结果
| I
我有一个包含5列的表(primary_key,abstractid,sentid,wordid,term)。
此查询调出出现在少于6个不同抽象in中的不同术语的列表。
SELECT
term, COUNT(distinct abstractid) AS "num"
FROM
nsfabstracts
HAVING
COUNT(distinct abstractid) < 6
GROUP BY
term
ORDER BY
"num" DESC;
我如何修改上面的查询来计算它返回的行数呢?另外,我如何删除与上
为了简单起见,我有一个包含这些数据的表:
Color Temp Value
----- ---- -----
red hot 1
red cold 1
red mild 2
red hot 2
red cold 3
blue hot 1
blue cold 2
blue hot 2
blue mild 3
blue hot 3
blue cold 2
green hot 1
yellow
如何创建一个SQL查询,该查询显示购买产品A和购买产品B而不使用子查询的人。现在,我正在尝试Where Product IN ('A' , 'B' ),没有计数不同,因为我也需要这些信息。有什么想法吗?现在我得到了任何A和B的,我想让它看起来像
JIM 03/20/2014 Product A
JIM 03/20/2014 Product B
并将不同时购买两者的人排除在外。目前看来
SELECT First, Last, Date, Product
From TABLE1
Where (Date = @Today) AND (Product IN ('
我已经编写了下面的表和SQL查询,这个查询不应该返回任何结果,而是返回它的ID = 1,这个查询有什么问题吗?有人能帮忙吗?
**注意balance数据类型是decimal rest是varchar
ID code balance level
1 C 150.00
1 P 40027.42 F
1 P 40027.42 F
select distinct ID from table
(
(code = 'P' and balance = 40027.42 and level = 'F') or
(code = &
我正在尝试创建一个SQL查询,其中'exists‘子句中的子查询有一个'having’子句。奇怪的是。没有错误,子查询作为独立查询工作。但是,使用'having‘子句的整个查询结果与没有’having‘子句的结果完全相同。
这就是我的查询:
SELECT X
FROM A
WHERE exists (
SELECT X, count(distinct Y)
FROM B
GROUP BY X
HAVING count(distinct Y)
我有一个连接表,其中包含两个列的主键组合。我想查询所有条目
columnA having count > 1
和
columnB = value1 and value2
到目前为止,我的查询如下
select
columnA
from tableA
where columnB = 1 and
columnA in (
select
columnA
from tableA
group by columnA
having count(columnA) > 1)
或
sel
我有一张桌子,像这样:
Employeeid personid reltnship status
111 125 owner active
111 252 prevown active
112 3 descsd active
我想要编写一个查询,以获取具有'owner'和'prevown'组合关系的员工的所有详细信息
我希望你能帮我解决这两个查询查询:
select count(distinct ID), sum(AMOUNT)
from SALES
where YEAR(SALEDATE) = '2015' and SALETYPE ='CASH'
group by CUSTOMER having sum(AMOUNT) >=500;
select count(distinct ID), sum(AMOUNT)
from SALES
where YEAR(SALEDATE) = '2015' and SALETYPE ='CREDIT
我有两张这两张表:
ID Name ID AuthorID Title
--------- ---------------------
1 John 1 1 Blue
2 Jack 2 1 Yellow
3 Joe 3 2 Blue
4 3 Blue
如何选择同时拥有名为Blue和Yellow的图书的作者。我知道我可以查询图书IN
表'treatment‘包含列'staff_no’、'patient_id‘、'start_date’、'reason‘。现在,我必须选择一个查询,以获得数据库中接受每种类型治疗(即治疗的原因)的不同患者的数量,按治疗原因的字母顺序排序,但只需列出至少有2名患者正在接受治疗的治疗。这是我写的-
SELECT COUNT (DISTINCT patient_id) CountNumber, reason FROM 'treatment' GROUP
BY reason ORDER BY reason;
但是我得到了#1064error。
这是我的查询
SELECT t.*
FROM `User` `t`
INNER JOIN (
SELECT cv.relatedId
FROM CustomValue cv
WHERE (cv.customFieldId=11 AND (cv.fieldValue like '%dsasda%')) OR (cv.customFieldId=15 AND (cv.fieldValue like '%1%'))
GROUP BY cv.relatedId
HAVING count(*) >= 1
) t
我是SQL的新手,还没有探索过创建表和检索数据的基础知识,需要用我认为是子查询和/或某种连接的查询来编写查询,这让我有点迷茫。
我正在使用一个表查询Oracle数据库,该表可能如下所示:
| Name | Price | Status |
+------+-------+--------+
| Cup | 1.00 | C |
| Cup | 2.00 | H |
| Cup | 1.50 | F |
| Pen | 1.00 | H |
| Pen | 2.00 | F |
| Book | 5.00 | C
select title, count(1), program.program_type, channel.name as channel_name, array_agg(distinct program_title.program_id) as programId
from program
join program_title
on program.program_id = program_title.program_id
join schedule
on program.program_id = schedule.program_id
join channel
我想使用一个查询组,如果该列值不同,作为示例,我有一个如下所示的表
First Name Last Name DOB
Nimal Herath 1987/03/15
Kamal Bandara Null
sunil Perera 1988/08/20
Kasun Sandaruwan 1985/07/02
Nimal Herath Null
Kamal Bandara Null
Sunil
select s.mname,count(distinct s.actorlist) as act
from p s
group by s.mname
having count(distinct s.actorlist) =
(select max(t.act)
from (
select s1.mname,count(distinct s1.actorlist) as a
我希望使用类似于下面的查询来检索events中至少有一个对应的'male'和'female'行的行。下面的查询不返回任何行(其中肯定有一些具有来自两性的events的event_attendances )。
有没有一种没有子查询的方法(由于我的应用程序中生成SQL的方式,子查询对我来说要困难得多)?
SELECT * FROM events e
LEFT JOIN event_attendances ea ON (e.id = ea.event_id)
GROUP BY e.id
HAVING ea.gender = 'female' AND e
我发现很难为上面的问题编写查询,我编写了以下查询,但它正在返回所有行
SELECT e.EmployeeID
FROM employees e
JOIN orders o ON e.EmployeeID = o.EmployeeID
JOIN order_details od ON o.OrderID = od.OrderID
JOIN Products p ON od.ProductID = p.ProductID
GROUP BY e.EmployeeID
HAVING COUNT(p.SupplierID) > 10
我在一个表中有一些马的数据,并且正在练习SQL,同时遵循我的爱好。我想找一种优雅的方法来解决这个问题。现在,我有一个复杂的方法来得到答案,但我知道必须有一个更容易的方法。
描述:
我将使它变得非常简单(假设这8行是整个表)。我有一张四栏的桌子。HORSE_ID,名称,跟踪,日期
一匹马可能在一条或多条不同的轨道上奔跑。最终的目标是找出只有在一个特定的track....in上跑过/竞选过的马--这个案子,我想看到那些在SA跑过所有比赛的马(圣安妮塔)
HORSE_ID NAME TRACK DATE
1 JUSTIFY SA
我已经在这个问题上寻找了答案,但无法完全找到如何根据条件获得这个不同的记录集。我有一个包含以下示例数据的表:
Type Color Location Supplier
---- ----- -------- --------
Apple Green New York ABC
Apple Green New York XYZ
Apple Green Los Angeles ABC
Apple Red Chicago ABC
Apple Red Chicago XYZ
Apple Red
我知道你可以通过得到所有含有A和B的菜肴,然后在结果中检查每一道菜,然后再用第二个查询来计算每一道菜有多少配料。然后,如果数字是2,它应该是一个包含A和B的2种配料的菜肴,所以它只包含A和B。
所有含有A和B的菜肴。
SELECT dishes.id, dishes.name
FROM dishes
JOIN dishes_ingredients ON dishes.id = dishes_ingredients.dishes_id
JOIN ingredients ON dishes_ingredients.ingredients_id = ingredients.id
WHERE in
所以我选择了一个名字和一些与之相关的运动,我只需要在这个数量大于1的时候选择它们。
SELECT DISTINCT name AS FullName,
(SELECT COUNT(id) FROM coaches WHERE coaches.name=FullName) AS NrOfSports
FROM coaches WHERE NrOfSports>1
如果删除了WHERE,查询就能正常工作,并显示所有行,其中一些行只有"1“作为NrOfSports。当我将它添加到WHERE子句中时,会得到一个错误,因为它是不被识别的。这让我感到困惑,因为如果我在另一
下面的查询是从关系表中收集内容is。它确保我的结果至少有两个关键字匹配。
我的问题是,我也有一个"hard关键字“(假设ID 127),这意味着我需要确保将hard关键字作为必须包含的关键字。我想我需要修改我的having子句,但我不知道如何修改。
select * from `contents__keywords`
where `keyword_id` in (127, 162, 249, 567)
group by `content_id`
having count(distinct `keyword_id`) >= 2
order by `content_id`
desc
我有以下内容(缩写查询):
SELECT
`Statistics`.`StatisticID`,
COUNT(DISTINCT `Flags`.`FlagType`) AS `FlagCount`
FROM `Statistics`
LEFT JOIN `Flags` ON `Statistics`.`StatisticID` = `Flags`.`StatisticID`
WHERE `FlagCount` = 0
GROUP BY `Statistics`.`StatisticID`
ORDER BY `SubmittedTime` DESC
LIMIT 0, 10
现在
我需要确定一个客户是否已经使用SQL查询购买了100种或更多的独特饮料,到目前为止我已经这样做了:
SELECT COUNT(DISTINCT beer_id)
FROM Orders
WHERE patron_email='smith@gmail.com'
我将如何测试这个结果是否是100或更多?
更新:不好意思,我需要使用标准SQL。