SQL DISTINCT,GROUP BY或....?

Jay*_*Jay 0 sql t-sql sql-server-2008 greatest-n-per-group

我有一个包含以下列的数据库

SKU | designID | designColor | width | height | price | etc.
Run Code Online (Sandbox Code Playgroud)

SKU数字是唯一的并且designID重复.

基本上,我想要DISTINCT或者设计GROUP BYID并获得行的其余部分的值,即使它们没有重复.

例:

123 | A-1 | RED | 2 | 3 | $200 | etc.
135 | A-2 | BLU | 8 | 4 | $150 | etc.
Run Code Online (Sandbox Code Playgroud)

毕竟,我应该可以通过任一列对它们进行排序.我已经尝试过GROUP BYDISTINCT,但他们不返回该行的值的其余部分.

例:

SELECT DISTINCT designID
FROM tbl_name
Run Code Online (Sandbox Code Playgroud)

哪个会回归

A-1  
A-2
Run Code Online (Sandbox Code Playgroud)

没有其他数据.

GROUP BY 例:

SELECT designID, designColor
FROM tbl_name
GROUP BY designID, designColor
Run Code Online (Sandbox Code Playgroud)

哪个会回归

A-01 | RED
A-02 | BLU
Run Code Online (Sandbox Code Playgroud)

任何想法,所以我可以有所有行值的DISTINCT结果?

提前致谢.

====================================

感谢大家所有的时间和提示,请让我描述更多;

基本上我需要消除重复的designID并只显示其中一个,并且它们中的哪个,第一个,中间或最后一个并不重要.重要的是我展示的必须包含所有行信息,如SKU,价格,大小等.我不知道,也许我应该使用不同的代码而不是DISTINCT或GROUP BY.

这是我想要的数据库.

在此输入图像描述

Mic*_*ski 5

除非我误解,否则您可以SELECT DISTINCT在多个栏目中:

SELECT 
  DISTINCT designID,
  designColor,
  width,
  height,
  price
FROM tbl_name
ORDER BY designColor
Run Code Online (Sandbox Code Playgroud)

这将为您提供所有唯一的行.例如,如果您有designID15个总行中的两个值,designColor分别有2个和3个不同的值,则这将为您提供5行.