我的表是:
id home datetime player resource
---|-----|------------|--------|---------
1 | 10 | 04/03/2009 | john | 399
2 | 11 | 04/03/2009 | juliet | 244
5 | 12 | 04/03/2009 | borat | 555
3 | 10 | 03/03/2009 | john | 300
4 | 11 | 03/03/2009 | juliet | 200
6 | 12 | 03/03/2009 | borat | 500
7 | 13 | 24/12/2008 | borat | 600
8 | 13 | 01/01/2009 | borat | 700
Run Code Online (Sandbox Code Playgroud)
我需要选择每个不同的 …
SELECT DISTINCT field1, field2, field3, ...... FROM table
Run Code Online (Sandbox Code Playgroud)
我试图完成以下sql语句,但我希望它返回所有列是否可能?就像是:
SELECT DISTINCT field1, * from table
Run Code Online (Sandbox Code Playgroud) 使用SQL Server,我有......
ID SKU PRODUCT
=======================
1 FOO-23 Orange
2 BAR-23 Orange
3 FOO-24 Apple
4 FOO-25 Orange
Run Code Online (Sandbox Code Playgroud)
我想要
1 FOO-23 Orange
3 FOO-24 Apple
Run Code Online (Sandbox Code Playgroud)
这个问题不是让我在那里.如何在一列上选择DISTINCT?
SELECT
[ID],[SKU],[PRODUCT]
FROM [TestData]
WHERE ([PRODUCT] =
(SELECT DISTINCT [PRODUCT] FROM [TestData] WHERE ([SKU] LIKE 'FOO-%'))
ORDER BY [ID]
Run Code Online (Sandbox Code Playgroud) 假设我有以下查询.
SELECT ID, Email, ProductName, ProductModel FROM Products
Run Code Online (Sandbox Code Playgroud)
如何修改它以使其不返回重复的电子邮件?
换句话说,当多行包含相同的电子邮件时,我希望结果只包含其中一行(最好是最后一行).应允许其他列中的重复项.
类似条款DISTINCT,并GROUP BY出现在整个行工作.所以我不确定如何处理这个问题.
我正在尝试编写一个查询,从每个独特设备的GPSReport表返回最新的GPS位置.表中有50个设备,所以我只想要返回50行.
这是我到目前为止(不工作)
SELECT TOP(SELECT COUNT(DISTINCT device_serial) FROM GPSReport) * FROM GPSReport AS G1
RIGHT JOIN
(SELECT DISTINCT device_serial FROM GPSReport) AS G2
ON G2.device_serial = G1.device_serial
ORDER BY G2.device_serial, G1.datetime DESC
Run Code Online (Sandbox Code Playgroud)
这将返回50行,但不会为每个device_serial返回唯一的行.它返回第一个设备的所有报告,然后返回第二个设备的所有报告等.
我想在一个查询中做什么?