我在使用group by子句时遇到了一些麻烦。我正在尝试用最早的InstallDate显示一个独特的CompanyID,下面是我的代码:
SELECT
Pa.PARTY_ID
,MIN(SM.[INSTALLDATE]) INSTALLDATE
,SM.[STOPDATE]
FROM FORMDESC FD
INNER JOIN STATEINFO SI
ON FD.FORMDESCID = SI.FORMDESCID
INNER JOIN COMPANY C
ON FD.COMPANYID = C.COMPANYID
INNER JOIN PARTY Pa
ON C.
我在表A中有重复的条目,如:
id | name
=========
1 blue
2 red
3 blue
4 blue
5 red
在表B中,表A中的id是一个外键,我希望用表A中的最小id更新外键,然后删除表A中的重复项,因此表B当前如下所示
id | tableAId
=============
1 1
2 2
3 3
4 4
5 5
表B最终应该如下所示
id | tableAId
=============
1 1
2 2
3 1
4
insert into tableA (column1)
select min(tableC.column1)
from tableB
inner join tableC on (tableC.coumn2 = tableB.column1
and tableB.column2 = tableA.column2)
group by tableA.column2
如何根据条件tableB.column2 = tableA.column2使用group by而不是insert with group by将上述代码更改为update?
注意,我使用的是SQL SERVER 2008
我有一个欧洲国家的数据库。在最右边的领域,我有所有列出的国家的人口密度。我必须找到最小的人口密度,并在一个查询中显示它和它所属的国家。
我最好的尝试:
SELECT Min(europa.Nepsuruseg) AS MinOfNepsuruseg, europa.Orszag
FROM europa
GROUP BY europa.Orszag;
然而,这显示了所有国家及其人口密度。我该怎么做呢?
我尝试为表工厂和内连接中的表成员赋予一个别名,这样我就可以在select中的子查询中使用它,如下所示
SELECT description,
Avg((SELECT Count(*)
FROM facturation F
WHERE F.membreid = M.membreid))
FROM v_type_membre
INNER JOIN v_membre M
ON v_type_membre.typeid = M.typeid
INNER JOIN v
我有两个表tbPerson和tbComment,数据如下:
tbPerson
PersonID FirstName LastName
1 William Tell
2 Joe Smith
3 Sam Hampton
tbComment
CommentID PersonID CommentValue CommentPosition
45 2 This is my comment 100
46 2
我有两个表,我得到了每个id的最大和最小记录。我有以下查询和输出
SELECT s.Id, tabl2.X, tabl2.Y
FROM (SELECT MAX(tabl2.Id) AS tbl2Id, tabl1.Id
FROM tabl2 INNER JOIN
tabl1 ON tabl2.Id = tabl1 .Id
WHERE (CONVERT(date, tabl2.date) = CONVERT(date, GETDATE() - 1)) and tabl1.Id=1
GROUP BY tabl1.Id
UNION
SELECT MIN(ta
首先,我从以下查询生成了一个表:
select su.supplier_zip, sp.shop_zip, COUNT(p.ptypes)
from supplier su
inner join parts p on su.sid=p.sid
inner join sales s on p.parts_pid=s.pid
inner join shop sp on s.shop_id=sp.shop_id
group by sp.shop_zip, su.supplier_zip
order by su.supplier_zip;
+--------------+--------
USE AQOA_Core
SELECT TOP 10
p.Title, SUM(r.SalesVolume) AS Sales, c.WeekId AS ReleaseWeek
FROM
Product p
INNER JOIN
RawData r ON p.ProductId = r.ProductId
INNER JOIN
Calendar c ON r.DayId = c.DayId
WHERE
c.WeekId BETWEEN 20145227 AND 20145228
GROUP BY
p.Title, c.WeekId
根据一些谷歌搜索和这里的问题,Join vs. sub-query似乎建议使用连接而不是嵌套查询,因此我正在努力增强我正在做的事情。 这有点像一个文件系统,想象一下下面的几个表。 user group folder
========== ========== ==========
id name id name id name
========== ========== ==========
1 Jack 1 HR
下面的sql查询有一个很大的问题,基本上我想按日期"Y-m-d“对表进行分组,找到该组的最小值并返回发生的时间。
但是,它一直在返回时间= 00:00:00,我不知道出了什么问题。任何帮助都将不胜感激。
示例:对于第一个结果,它正确地计算了该组的最低价格,但时间是04:00:00,但它仍然返回了00:00
根据返回的id,它似乎返回该组的第一个元素的日期,而不是最低价格发生的实际日期。
Select val_date
, id
, MIN(average_price) AS min_value
from tableY
GROUP
BY Month
我有这个查询,它工作得很好。我使用MIN(home_price)作为起始价格显示,我对api使用这个查询,并将子句添加到其中,所以如果按价格进行搜索,MIN(home_price)就会发生变化。
SELECT MIN(home_price) as min_home_price,
id,
name,
community,
maplocation,
locationLabel,
logo
FROM ourCommunity
INNER JOIN readyBuilt
ON community = home_community
INNER JOIN
我有一个GroupMeetings表和一个GroupMeetingsUser表,这是User和GroupMeetings之间的一个连接表。我希望找到至少有1个GroupMeetings具有属性的所有GroupMeetingsUser。 现在,这是可行的: @group_meetings = GroupMeeting.where('lang_one_id IN (?) AND lang_two_id IN (?) AND meeting_time >= ?', @user.languages.pluck(:id), @user.languages.pluck(:id
我仍然对SQL和PHP心有余而力不足,但希望有人能帮上忙:
我有以下表格:
1.
user table
- id
- name
- email
2.
user_group table
- user_id
- group_id
3.
group table
- id
- group_name
用户表和组表之间存在多对多关系。现在我要做的是构建一个浏览用户页面,其中列出了系统中的所有用户以及他们所属的组,因此该页面将如下所示:
Name: John Doe
Groups: football, tennis, swimming
Name: Jane Doe
Groups: hockey, bask
我是SQL的新手,我有一个基本的问题。我有3个表和2个内连接。这是我的SQL代码:
select c.name, case when e.time > NOW() then 'Yes' else 'No' end AS "time"
from table1 as e
INNER JOIN table2 as a on e.id = a.id
INNER JOIN table3 as c on a.id = c.id
where e.conty= 'SAD'
GROUP BY c.name;
错误:mus
这个问题有点长,所以它将是明确的,谢谢提前!
引言
我目前有3个表使用多到多的关系。我需要查询所有三个表,并将它们合并到一个表中。
问题
我尝试过这样的查询:
SELECT * FROM `login` LEFT JOIN membership ON login.id = membership.login_id UNION SELECT * FROM `login` RIGHT JOIN membership ON login.id = membership.login_id
它还会:
+----+------+----------+
| id | name | group_id |
+
我有以下问题
SELECT YEAR(T.date), MONTH(T.date), T.production, T.lineID, SUM(rework + scrap)
FROM
(SELECT MAX(positionID), date, production, lineID
FROM productionPerPosition
WHERE lineID = 2
AND date BETWEEN '2017-01-01' AND '2017-01-31'
GROUP BY date) AS T
INNER JOIN l
我在下面的查询中得到了三个不同的结果,它们都有相同的连接和列来计数,只是要计数的条件是不同的,有没有什么方法可以让我在一个查询中同时得到问题,正确,尝试和IeslTopics.Name列?
SELECT COUNT(TestResults2.QuestionID) AS Questions, Topics.Name
FROM TestResults
INNER JOIN TestResults2 ON TestResults.ID = TestResults2.TestResultID
INNER JOIN QuestionBank ON TestResul
我有三张桌子:钱,学生,教员。此查询返回每个教员和每个教员的最高津贴。
select
f.name as "FACULTY_NAME",
max(stipend) as "MAX_STIPEND"
from
money m, student s
inner join
faculty f on f.id_faculty = s.faculty_id
where
m.student_id = s.id_student
group by
f.id_faculty, f.name;
查询工作正常:
FACULTY
嗨,我想知道是否有一种方法可以从与min相关联的线路中获取信息。因此,在下面的示例中,我想简单地获取每个客户的最小值(日期)和相关的信息。
Cust_id Date information
-----------------------------------------------------
12345 2015-04-03 blue hat
12345 2015-04-05 red scarf
12345 2
我可以选择每个部门的最高分数,但不能显示与最高分数相关的每个人的姓名。我试图选择名称和最高等级(使用最大函数),但它不起作用:
select max(stgrade)as highscore,StName,DepName --department
from TBL_DEPARTMANTS d
inner join TBL_LESSONS l on d.DepID=l.LessonID
inner join TBL_GRADES g on g.lessonid=l.LessonID
inner join TBL_STUDENT s on s.STID=g.stid
group by DepNam
功能是主表feature_groups是连接表连接特性和组group_orgs另一个连接表连接组和org
简约
features
--------
feature_id
name
feature_groups
----------
feature_id
group_id
group_orgs
---------
group_id
org_id
我希望找到feature_groups中存在的所有特性,这些特性的group_id不存在于group_orgs中。下面的方法似乎是可行的,但只是想知道这是否是最好的方法。
select f.feature_id
from features f
虽然这个问题看起来很简单,但有点棘手。
考虑下表:
CREATE TABLE A (
id INT,
value FLOAT,
"date" DATETIME,
group VARCHAR(50)
);
我希望获得包含按列ID分组的最大date的记录的group和group。换句话说,“每个群体的最新价值是什么?”什么样的查询才能回答这个问题?
我可以得到每一组和它的最大日期:
SELECT group, MAX(date)
FROM A
GROUP BY group; -- I also need the "ID" and
我想在这段代码中返回Sum(units_sold)的最大值
SELECT dim_product.product_name, Sum(fact_sales.units_sold) AS
SumOfunits_sold
FROM dim_product
INNER JOIN fact_sales
ON dim_product.product_code = fact_sales.product_code
GROUP BY dim_product.product_name
ORDER BY Sum(fact_sales.units_sold) DESC;
但我不能这么做,我试着用这种方法来限制
我有两个问题:
SELECT g.id FROM "group" g INNER JOIN group_role gr on g.id = gr.group_fk
INNER JOIN role_details rd on rd.group_role_fk = gr.id
INNER JOIN mandate m on m.role_details_fk = rd.id where m.id = x
和
SELECT p.id, p.name, g.name, g.id
FROM person p INNER JOIN position pos on p.id = pos.pe
我有这个查询将搜索一些新闻,并返回新闻数据作为它的组,公司和类别。问题是,有一个消息可以有许多公司和组,我需要将这个结果(grupoNome和empresaNome)分别连接在一个字段中,因此使这个查询只返回一行:
这是我的“正常”查询结果:
id titulo categoriaId url categoriaNome grupoNome empresaNome
5 Teste 1 teste "Todas as Notícas" "Group 1" Company 1
5 Teste
我得到了这个选择。我想数(或数?)黄牌和红牌(只在YellowCard = 1处计算黄牌,在RedCard =1时才算红牌)。此选择不能正确工作。它计数卡,即使有0或空..。我怎样才能改正呢?
SELECT Firstname, Lastname, COUNT(YellowCard) AS Yellow, COUNT(RedCard) AS Red, Team.Name
FROM PlayerMatch
Inner join Player On PlayerMatch.PlayerId = Player.PlayerId
INNER JOIN Team ON Player.TeamId