[英]How to select all columns from a table but with unique one column
我有一個包含很多列的表,我想選擇所有列,但我想要這些列中唯一的列。
這適用於我,但我沒有得到所有列:
$result = mysql_query("SELECT DISTINCT company FROM table t $order");
我也測試了這個,但沒有做任何事情:
$result = mysql_query("SELECT * DISTINCT company FROM table t $order");
$result = mysql_query("SELECT DISTINCT company * FROM table t $order");
編輯
我的表有很多列,我們說它有5個所以我的記錄的一個例子是這樣的:
company x y price numOfEmpl
one 1 5 1.3 15
one 2 6 1.4 15
two 3 7 1.5 16
three 4 8 1.6 17
所以我想削減第二行,並采取所有其他。
根據額外信息編輯以前的答案
如果需要,可以在MySQL和SQL Server中為您提供解決方案
MySQL示例(使用用戶變量/子查詢)
CREATE TABLE SomeTable (company VARCHAR(20), x INT, y INT, price FLOAT, numOfEmploy INT);
INSERT INTO SomeTable
(company, x, y, price, numOfEmploy)
VALUES
('one', 1, 5, 1.3, 15),
('one', 1, 6, 1.4, 15),
('two', 1, 7, 1.5, 16),
('three', 1, 8, 1.6, 17);
SET @count = NULL, @value = NULL;
SELECT company, x, y, price, numOfEmploy FROM (
SELECT
company, x, y, price, numOfEmploy,
@count := IF(@value = company, @count + 1, 1) AS rc,
@value := company
FROM SomeTable
) AS grouped_companies WHERE rc = 1
SQL Server示例(使用CTE)
--Create the table
declare @sometable table ( company varchar(10), x int, y int, price float, numOfEmploy int)
--insert the data
insert into @sometable values ('one', 1, 5, 1.3, 15)
insert into @sometable values ('one', 2, 6, 1.4, 15)
insert into @sometable values ('two', 3, 7, 1.5, 16)
insert into @sometable values ('three', 4, 8, 1.6, 17)
--WITH Common Table Expression
;WITH grouped_companies AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY company
ORDER BY company) AS rc
FROM @sometable)
SELECT gc.company, gc.x, gc.y, gc.price, gc.numOfEmploy
FROM grouped_companies gc
WHERE gc.rc = 1
DISTINCT
關鍵字可用於僅返回已定義列中的不同(不同)值,例如
SELECT DISTINCT column_name,column_name
或者您可以返回DISTINCT值的數量
SELECT COUNT(DISTINCT column_name)
我想你可能需要對所有記錄使用單獨的sql query
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.